温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

iframe通信怎么实现

发布时间:2022-12-05 16:38:16 来源:亿速云 阅读:341 作者:iii 栏目:编程语言

本文小编为大家详细介绍“iframe通信怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“iframe通信怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一 iframe简介

iframe是一个行内标签,在一个页面中使用iframe标签,通过src可以链接到其他页面。当前页面也可通过设置 X-Frame-Options:'sameorigin',只允许同源访问。

二 iframe通信

1.同源通信

通过在父页面中中获取iframe页面的window,通过window去调用子页面的全局函数实现 父向子传值;

/*父页面*/
  <iframe id='child' scr='*'></iframe>
  <script>
    const child = document.querySelector('#child');
    child.contentWindow.on(x);
  </script>
/*子页面*/
  <script>
    function on(message){
      console.log(message);
    };
  </script>
2.非同源通信

父页面通过iframeDom.postMessage 来发送数据, 子页面通过window.onmessage 来监听发送过来的数据

/*父页面*/
  <iframe id='child' scr='*'></iframe>
  <script>
    const child = document.querySelector('#child');
    child.postMessage(x,y); // x 表示传递数据,y表示url,可以设置为'*'
  </script>
/*子页面*/
  <script>
    const fn = (e)=>{
      console.log(e.data);
    };
    window.addEventLisener= ('message',fn)
  </script>
关于页面的跳转
a标签的target属性

_self: 在当前tab中进行跳转;// 如果iframe子页面中使用这个属性,会在iframe中进行跳转;
_blank: 新开一个tab进行跳转 // iframe子页面中,和父页面表现一致
_parent: 在iframe中生效,表示在当前iframe页面外一层的父页面中进行跳转,可以外层的一个iframe,也可以是最外层主页面
_top: 在iframe中生效,表示当前iframe最外层的主页面中进行跳转

location.href 进行跳转

location.href: 在当前页面进行跳转;// 如果在iframe的子页面中进行使用,会在当前iframe内部进行跳转页面;
window.parent.location.herf: 在iframe子页面中使用,表示在父页面中跳转
window.top.location.href: 在iframe子页面中使用,表示在顶层页面中跳转
window.open('*'); // 新开一个tab页跳转

读到这里,这篇“iframe通信怎么实现”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI