Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript html5 PostMessage跨域-相反版本_Javascript_Html_Postmessage - Fatal编程技术网

Javascript html5 PostMessage跨域-相反版本

Javascript html5 PostMessage跨域-相反版本,javascript,html,postmessage,Javascript,Html,Postmessage,我已经创建了从一个域到另一个域的PostMessage <iframe id="frameId" src="http://b.net/2.html" onload="sendCommand();"> </iframe> <script type="text/javascript"> function sendCommand() {

我已经创建了从一个域到另一个域的PostMessage

       <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>
在域A中,我有域B的框架。我可以从A向B发送消息。现在我想做相反的事情。我需要一个按钮在框架(在弹出窗口)。当我点击那里时,我需要从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>
在域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>

函数sendCommand(){
无功接收器;
receiver=document.getElementById('frameId').contentWindow;
receiver.postMessage(receiver,'http://b.net');
}
在域B中:

       <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>
    <!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>

var F=函数(){}
你好
点击我
window.addEventListener('message',函数(事件){
警报(事件来源);
},假);
我解决了这个问题:

       <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>
这是好的解决方案吗

       <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>
<!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>

变量t;
函数加载(){
window.addEventListener('message',函数(事件){
console.log(事件数据);
视窗间隔(t);
返回;
},假);
}     
没有框架!
函数sendCommand(){
//对域B进行后期按摩
var receiver=document.getElementById('frameId').contentWindow;
receiver.postMessage(“开始监听”http://b.net');
} 
var F=函数(){
//将消息从Iframe页面发送到域A
parent.postMessage(“来自Iframe页面”,“*”);
}
你好
点击我
//倾听事件
window.addEventListener('message',函数(事件){
console.log(event.data)
},假);