2016-09-26 1 views
0

Also, ich habe eine App läuft auf Bluemix (sagen wir Route is- myapp1.mybluemix.net) und ich habe eine zweite App (route - myapp2.mybluemix.net).
Jetzt möchte ich Nachricht überFunktioniert window.postMessage() in verschiedenen Apps auf verschiedenen Servern?

postmessage ("Hallo", "http://myapp2.mybluemix.net") senden von myapp1.mybluemix.net.

Wenn ich dies mit beiden Apps auf einem Ohr mache oder den Server verpacke und auf Bluemix deployen. Ich kann das machen. Aber nicht mit anderen Apps.

Ich verstehe das Verhalten nicht. Bitte helfen Sie. den Code für App1 Nach -..

<script> 
function Menu() { 
    var child = window.open("http://myapp2.mybluemix.net/page2.jsp",'name',width=200,height=200); 
    child.onload=function(){ 
    child.postMessage('hellow','http://myapp2.mybluemix.net/'); 
    } 
    }; 
    </script> 
    <input type="button" value="Try it" onclick="Menu()"/> 

Und für App2 (die http://myapp2.mybluemix.net/page2.jsp)-

<script type="text/javascript"> 
function listenMessage(msg) { 
alert(msg.data); 
} 
window.addEventListener("message", listenMessage, false); 

</script> 
<p id="message">This is an Example!</p> 
+0

vielleicht einige [Dokumentation] (https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) wird Ihnen helfen zu verstehen –

+0

Ja, ich googelte es wie 100 Mal, aber ich nicht verstehen. Im Idealfall sollte es funktionieren. – yashpandey

+0

Da Sie keine Angaben darüber gemacht haben, wie diese beiden "Apps" koexistieren, kann ich nur annehmen, dass Sie missverstanden haben, wann und wie postMessage funktioniert - der Hinweis ist, dass es Frames (iframes) und/oder window.open involved ... you kann nicht so über zwei verschiedene Registerkarten in einem Browser kommunizieren, oder zwei verschiedene Browser –

Antwort

0

Sie haben das Problem falsch diagnostiziert ist

Der postMessage Code selbst ist in Ordnung Es ist nicht funktioniert, weil Sie es nie anrufen.

Die load Veranstaltung kann ' t über die Herkunft hinweg erkannt werden.

Lassen Sie App 2 auf sein eigenes load Ereignis hören und verwenden Sie window.opener.postMessage, um App 1 anzukündigen, wenn es fertig ist.

+0

Ich habe den Code bearbeitet und die child.onload entfernt, aber jetzt möchte ich einige Daten von App1 zu App2 senden und manipulieren in App2. Ich weiß nicht, warum die Nachricht nicht von App1 zu App2 geht, obwohl die Nachricht von App2 erfolgreich von App1 empfangen wurde. – yashpandey

Verwandte Themen