欢迎来到代码驿站!

JavaScript代码

当前位置:首页 > 网页前端 > JavaScript代码

使用postMessage实现iframe跨域通信的示例代码

时间:2022-09-22 10:41:31|栏目:JavaScript代码|点击:

1、父页面内容

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <h1>主页面</h1>
        <iframe id="child" src="http://10.0.0.159:8080"></iframe>
        <div>
            <h2>主页面跨域接收消息区域</h2>
            <div id="message"></div>
        </div>
    </body>
    <script>
        /* -------------iframe跨域数据传递--------------- */
        
        //传递数据到子页面
        window.onload = function() {
            document.getElementById('child').contentWindow.postMessage("主页面消息", "http://10.0.0.159:8080")
        }
        //接受子页面传递过来的数据
        window.addEventListener('message', function(event) {
            document.getElementById('message').innerHTML = "收到" + event.origin + "消息:" + event.data;
        }, false);
    </script>

</html>

2、子页面

(我这里在在vue页面里做的测试,vue模板的html代码就不展示了)

mounted() {

            //接收父页面传过来的数据
            window.addEventListener('message', function(event) {    
                
                // 处理addEventListener执行两次的情况,避免获取不到data
                // 因此判断接收的域是否是父页面
                if(event.origin.includes("http://127.0.0.1:8848")){
                    console.log(event);
                    document.getElementById('message').innerHTML = "收到" + event.origin + "消息:" + event.data;
                                        
                    //把数据传递给父页面 > top.postMessage(要传递的数据,父页面的url访问地址)
                    top.postMessage("子页面消息收到", 'http://127.0.0.1:8848/boatStaticHtml/iframe%E9%80%9A%E4%BF%A1.html');                
                }
            }, false);    

        }

3、效果图展示

上一篇:基于javascript实现按圆形排列DIV元素(二)

栏    目:JavaScript代码

下一篇:没有了

本文标题:使用postMessage实现iframe跨域通信的示例代码

本文地址:http://www.codeinn.net/misctech/214410.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有