2013-01-30 4 views
0

Я создал PostMessage из одного домена в другой.html5 PostMessage cross domain - напротив версии

в домене A У меня есть кадр домена B. Я могу отправить сообщение от A до B. Теперь я хочу сделать противоположное этому. Мне нужна кнопка в рамке (в окнах popUp). когда я нажимаю там, мне нужно отправить сообщение от B к A.

В области А:

 <iframe id="frameId" src="http://b.net/2.html" onload="sendCommand();"> </iframe> 

      <script type="text/javascript"> 
         function sendCommand() { 
         var receiver; 
         receiver = document.getElementById('frameId').contentWindow; 
         receiver.postMessage(receiver, 'http://b.net'); 
         } 
       </script> 
     </body> 
    </html> 

И в домен B:

<!DOCTYPE HTML> 
    <html> 
    <head> 
    <script> 
    var F= function(){} 
    </script> 

    </head> 
    <body> 
    Hello THere 
    <button onclick="F()">Click me</button> 
    <script> 
      window.addEventListener('message', function(event) { 
      alert(event.origin); 
    }, false); 

    </script> 
    </body> 

</html> 

ответ

0

Я решил с этим :

это хорошее решение?

<!DOCTYPE HTML> 
    <html> 
    <head> 
    <script> 
     var t; 
     function load(){  
       window.addEventListener('message', function(event) { 
         console.log(event.data) ;     
         window.clearInterval(t); 
         return; 
       }, false); 
     }  
    </script> 
    </head> 
    <body onload="load()"> 
      <iframe id="frameId" src="http://b.net/2.html" onload="sendCommand();"> No Frame!</iframe> 
      <script type="text/javascript"> 
        function sendCommand() { 
         // post massage to domain B 
         var receiver = document.getElementById('frameId').contentWindow; 
         receiver.postMessage("Start listening", 'http://b.net'); 
        } 
      </script> 
    </body> 
</html> 


<!DOCTYPE HTML> 
<html> 
<head> 
<script> 
var F= function(){ 
    // Send message from Iframe Page to domain A 
    parent.postMessage("From Iframe Page ","*"); 
} 
</script> 
</head> 
<body> 
Hello There 
<button onclick="F()">Click me</button> 
<script> 
     // Listen events 
     window.addEventListener('message', function(event) { 
     console.log(event.data) 
     }, false); 

</script> 
</body> 
</html>