日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

HTML5 跨文档消息传输

發布時間:2025/4/16 HTML 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTML5 跨文档消息传输 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對窗口對象的message事件進行監聽

window.addEventListener("message", function(event) { // 處理程序代碼 }, false);

使用window對象的postMessage()方法向其他窗口發送消息,該方法的定義如下:

  • otherwindow.postMessage(message, targetOrigin); ?

  • 該 方法使用兩個參數:第一個參數為所發送的消息文本,但也可以是任何JavaScript對象(通過JSON轉換對象為文本);第二個參數為接收消 息的對象窗口的URL地址,可以在URL地址字符串中使用通配符“*”指定全部地址,不過建議使用準確的URL地址。otherwindow為要發送窗口 對象的引用,可以通過window.open()方法返回該對象,或通過對window.frames數組指定序號(index)或名字的方式來返回單個 frame所屬性的窗口對象。

    <script type="text/javascript" src="http://wwww.yowu.com/Tpl/default/Public/js/jquery.js"></script><script>$(function(){window.parent.postMessage("<?php echo $payFlag . '|'. intval($out_trade_no);?>", '*');});</script>

    示例

    ?

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <title>跨文檔消息傳輸示例主文檔</title> <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script> <script type="text/javascript"> $(function() { // 監聽message事件。 window.addEventListener("message", function(event) { // 忽略指定URL之外的頁面發送的消息。 if(event.origin != "http://www.blue-butterfly.net") return; alert(event.data); // 顯示消息。 }, false); $("#iframeContent").load(function(event) { // 向子頁面發送消息 this[0].postMessage("Hello", "http://www.blue-butterfly.net/test/"); }); }); </script> </head> <body> <header> <h1>跨域通信示例</h1> </header> <iframe id="iframeContent" width="400" src="http://www.blue-butterfly.net/test/"></iframe> </body> </html>

    ?

    子頁面中的代碼如下:

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script> <script type="text/javascript"> $(function() { window.addEventListener("message", function(event) { if(event.origin != "http://Lulingniu") return; $("#console").append(event.origin).append("傳來的消息:").append(event.data); // 向主頁面發送消息。 event.source.postMessage("Hello, there is :" + this.location, event.origin); }, false); }); </script> </head> <body> <p>這是iframe中的內容。</p> <div id="console"></div> </body> </html>

    ?

    • 通過對window對象的message事件進行監聽,可以接收消息。

    • 通 過訪問message事件的origin屬性,可以獲取消息的發送源(本例中主頁面的發送源為“http://Lulingniu”, 子頁面的發送源為“http://www.blue-butterfly.net”)。注意:發送源與網站的URL地址不是一個概念,發送源只包括域名與 端口號,為了不接收其他源惡意發送過來的消息,最好對發送源做檢查。

    • 通過訪問message事件的data屬性,可以取得消息內容(可以是任何JavaScript對象,使用JSON)。

    • 使用postMessage()方法發送消息。

    • 通過訪問message事件的source屬性,可以獲取消息發送源的窗口的代理對象。

    ?

    ?

    ?

    《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的HTML5 跨文档消息传输的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。