`

iframe跨域通信--html5.postmessage

 
阅读更多

父:<!doctype html>

<html>

<head>

    <meta charset="utf-8"/>

    <title>跨域测试</title>

</head>

<body>

<script>

 if (typeof window.postMessage != 'undefined'){// 检查浏览器是否支持postMessage

 var iframe = document.createElement('iframe');

 iframe.src = 'http://login2.qingdao.gov.cn/uc/iframe1.html';

 document.body.appendChild(iframe);

 var reciever = function(e) {////监听到事件之后的回调

 debugger;

      var data = e.data;

      alert(data);

   };

 if (window.addEventListener){//兼容监听绑定事件---addEventListener:不带on

     window.addEventListener('message', reciever, false);

 }else if (window.attachEvent){

     window.attachEvent('onmessage', reciever);

 }

    }

</script>

</body>

</html>

 

子:<!doctype html>

<html>

<head>

    <meta charset="utf-8"/>

    <title></title>

</head>

<body>

<script>

 if (typeof window.postMessage != 'undefined') {// 检查浏览器是否支持postMessage

 setInterval(function(){

 var message="nihao";

 window.parent.postMessage(message, '*');//注意向父窗口发送消息,如果往本页面的iframe发消息,需要指明哪个iframe.contentWindow.postMessage

 },1000);

}

/*

通过调用目标页面window对象中的postMessage()函数可发送消息,代码如下:

window.parent.postMessage(“Hello, world”, “portal.example.com”);

第一个参数包含要发送的数据,第二个参数是消息传送的目的地。

注意:要发送消息给iframe,可以在相应iframe的contentWindow,中调用 postMessage,代码如下:

document.getElementsByTagName(“iframe”)[0].contentWindow.postMessage(“Hello, world”, “url”);例如iframe2

*/

</script>

</body>

</html>

分享到:
评论

相关推荐

    前端项目-Iframe-Height-Jquery-Plugin.zip

    由于可能存在跨域限制,插件可能需要采用特殊方法,如通过设置`postMessage`通信来从iframe内部传递高度信息到外部。 3. **设置iframe高度**:获取到准确的高度后,插件会动态更新iframe的`height`属性,使其适应...

    iframe跨域通信解决方法

    ### iframe跨域通信解决方法 在现代Web开发中,跨域问题经常出现并困扰着开发者。尤其是在使用`iframe`嵌入不同源的内容时,主页面往往无法直接与`iframe`内的内容进行交互,这就需要一种解决方案来实现跨文档消息...

    iframe+postMessage实现跨域通信

    iframe+postMessage实现跨域通信 window.postMessage()方法安全地启用Window对象之间的跨源通信;例如,在页面和它产生的弹出窗口之间,或者在页面和嵌入其中的iframe之间。 

    iframe跨域解决方案

    为了解决这一问题,HTML5引入了一种叫做跨文档消息传递(Cross-document messaging)的技术,允许不同源的窗口(包括`iframe`)通过`window.postMessage()`方法发送和接收消息。使用`postMessage`,父页面可以向`...

    iframe-resizer-master.rar

    总结来说,`iframe-resizer-master`是解决`iframe`高度自适应和跨域问题的强大工具,它通过监听DOM事件和`postMessage`通信,使得`iframe`的使用更加灵活和高效。在网页开发中,合理运用`iframe-resizer-master`,...

    利用HTML5的window.postMessage实现跨域通信

    HTML5的`window.postMessage`是解决跨域通信问题的一个重要机制。在Web开发中,由于浏览器的安全策略,不同源的页面之间默认不允许进行数据交互,但`postMessage`提供了一种安全的方式,允许来自不同源的脚本采用...

    javascript经典特效---IFRAME间链接变换.rar

    综上所述,"javascript经典特效---IFRAME间链接变换.rar"这个资源将教你如何利用JavaScript实现IFRAME之间的链接切换,涉及到了IFRAME的基本使用、跨域通信、事件监听以及性能优化等多个方面,对于希望提升网页交互...

    完美解决iframe跨域问题

    1. **使用`window.postMessage`**:这是一种现代浏览器支持的跨域通信方式,通过向`window`对象发送消息,可以在不同源的iframe之间传递数据。发送端使用`postMessage(data, targetOrigin)`,接收端监听`message`...

    javascript经典特效---Iframe页面的滚动.rar

    - 使用`window.postMessage`进行跨域通信,可以实现更灵活的Iframe页面交互,但需要在主页面和Iframe页面之间协调。 以上就是关于"Iframe页面的滚动"这个主题的主要知识点。通过学习和实践这些内容,开发者可以更...

    H5 postMessage 实现iframe 跨域传递数据

    ### 三、iframe跨域通信 在涉及到iframe的场景下,`postMessage`是解决跨域问题的关键。假设我们有一个父页面和一个嵌入的子页面(位于不同域),我们可以这样使用`postMessage`: #### 1. 子页面向父页面发送数据...

    iframe-cross-domain.rar

    在IT行业中,跨域通信是一个常见且重要的主题,特别是在Web开发中。本示例涉及到的“iframe-cross-domain.rar”文件,很可能包含了一组用于演示或教学如何处理iframe跨域问题的资源。`iframe`(内联框架)是HTML中一...

    单点登录跨域iframe互相通信方案.zip

    - **Window.postMessage()**:这是HTML5引入的一种安全的跨文档消息传递方法,允许来自不同源的iframe与父窗口或另一个iframe通信。 - **事件监听**:设置事件监听器来接收和响应来自其他源的消息。 - **Origin...

    iframe 跨域解决方法

    `iframe`中的页面可以使用`window.postMessage()`发送消息,然后父页面通过监听`message`事件来接收这些消息。 3. **`window.name`属性**:由于`window.name`不会在页面刷新时丢失,因此可以用来传递跨域数据。`...

    layer弹窗:top.layer弹窗到父页面跨域解决办法

    `window.postMessage()`方法允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文档的消息传递,即跨域通信。它的工作原理是:一个窗口向其打开的子窗口、其父窗口或者任何其他与之有某种关系的窗口发送...

    iframe跨域通信的通用解决方案-第二弹!(终极解决方案)

    标题中的“iframe跨域通信的通用解决方案-第二弹!(终极解决方案)”指的是在Web开发中,使用`iframe`元素进行跨域通信的一种高级技术。跨域通信是Web应用程序中常见的需求,特别是在需要集成不同来源的网页内容或者...

    html5 API postMessage跨域详解.pdf

    HTML5的`postMessage` API是为了解决Web应用程序之间的跨域通信问题而引入的。在传统的Web开发中,由于浏览器的同源策略限制,不同源的页面无法直接交互,但`postMessage`提供了一种安全的方式,允许来自不同源的...

    iframe 跨域 自动适应高度

    使用`window.postMessage`进行父页面与子页面间的数据通信,从而实现跨域交互。 - **沙箱模式(sandbox)** 使用`sandbox`属性可以限制`iframe`的行为,允许跨域加载但不执行任何脚本。 ```html &lt;iframe src=...

    嵌套iFrame使用postMessage相互传递消息(嵌套iFrame、跨父子窗口、跨页面).zip

    练习说明:使用postMessage可以在iFrame、父子窗口、跨页面等,之间相互传递消息。 你好,我是TKCB-GO,一个有着游戏策划梦想,却沦为程序员的游戏家,这是我的技术博客:www.tkcb.cc 技术博客网站里面,除了我的...

    iframe跨域常用问题和iframe页面自适应

    2. **PostMessage API**:这是一种通过JavaScript实现跨域通信的方式。父页面和`iframe`页面可以通过`window.postMessage()`发送消息,然后在另一方的`message`事件中接收。这种方法无需服务器端配合,但需要注意...

Global site tag (gtag.js) - Google Analytics