成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

HTML5 的頁面消息傳輸機制

開發 前端
HTML5 的Message API能夠讓HTML5頁面之間傳遞消息,甚至這些頁面可以不在同一樣域名下。

HTML5 的Message API能夠讓HTML5頁面之間傳遞消息,甚至這些頁面可以不在同一樣域名下。

發送消息

為了讓消息能從一個頁面發送到另一個頁面,主動發送消息的頁面必須擁有另一個頁面的窗口引用。然后發送 頁面針對接受頁調用 postMessage() 方法。

代碼演示:

  1. var message = "Hello there";  
  2. var origin  = "http://www.oschina.net";  
  3.  
  4. var theIframe = document.getElementById("theIframe");  
  5.  
  6. theIframe.contentWindow.postMessage(message, origin); 

postMessage() 方法中 origin 參數的值必須與頁面所在的iframe的域名相匹配。否則將無法正常運行,這里 你不需要整個頁面的網址,而只需要主域名就夠了,例如 http://localhost 或 http://www.oschina.net

接受消息

為了能接受消息,頁面需要訂閱好onmessage事件的處理方法,以下就是能在Firefox與Chrome上正常運行的代碼:

  1. window.onmessage = function(event) {  
  2.     document.getElementById("show").innerHTML =  
  3.             "Message Received: " + event.data  
  4.           + " from: " + event.origin;  

以上代碼設置好window的onmessage事件處理方法。然后在方法中找到id為"show"的html元素,然后設置此元 素的innerHTML為"Message received: "與真正的message。

在IE9下必須以這種代碼實現相同的功能。

  1. window.attachEvent("onmessage", function(event) {  
  2.     document.getElementById("show").innerHTML =  
  3.             "Message Received: " + event.data  
  4.           + " from: " + event.origin;  

建議你在JS中保持這兩份代碼,它們之間是沒有沖突的。

事件對象將包含以下三個屬性。

  1. data  
  2. origin  
  3. source 

data屬性包含包含發送頁面發送過來的消息

origin屬性包含發送頁面的原始域名

source屬性包含發送頁面的window對象對應的引用。此window對象可以用來回復消息給原始的發送頁面,只需 要使用postMessage( )就行,如下就是代碼:

  1. window.onmessage = function(event) {  
  2.     event.source.postMessage(  
  3.        "Thank you for the message",  
  4.        event.origin  
  5.     );  

發送JSON

Messageing API只允許你發送字符串類型消息。如果你需要發送JavaScript對象,你將需要將此對象使用 JSON.stringify( ) 轉換成JSON字符串,接受后使用 JSON.parse( ) 方法翻譯成JavaScript對象。代碼如下:

  1. var theObject = { property1 : "hello", property2 : "world" }  
  2. var message = JSON.stringify(theObject);  
  3. var origin  = "http://tutorials.jenkov.com";  
  4.  
  5. var theIframe = document.getElementById("theIframe");  
  6.  
  7. theIframe.contentWindow.postMessage(message, origin); 

以下代碼就是如何將JSON字符串轉換成 JavaScript 對象。

  1. window.onmessage = function(event) {  
  2.     var theObject = JSON.parse(event.data);  

原文鏈接 , OSChina.NET 原創翻譯

責任編輯:林師授 來源: OSCHINA
相關推薦

2015-07-22 16:44:51

HTML5優化

2013-01-24 10:26:04

HTML5HTML 5HTML5的未來

2011-05-13 17:36:05

HTML

2023-03-16 09:00:00

HTML5HTML語言

2015-03-11 13:21:50

2013-10-21 15:24:49

html5游戲

2017-01-03 18:09:33

HTML5本地存儲Web

2011-05-12 15:42:16

HTML5

2012-05-25 15:48:59

HTML5

2011-05-13 17:41:40

2011-01-14 17:53:33

HTML5cssweb

2011-05-11 12:59:18

HTML5

2012-08-27 10:00:06

HTML5

2012-06-25 14:57:27

HTML5

2019-05-29 19:00:35

HTML5存儲方式前端

2011-07-26 10:46:04

HTML 5

2015-04-30 11:26:38

HTML5與APP的抉

2012-08-31 17:09:31

FacebookHTML5W3C

2016-05-13 17:14:51

華為HTML5

2013-03-22 08:59:57

HTML5移動應用Web App
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产日韩在线观看一区 | 欧美成人一区二区三区 | 欧美1区2区 | 亚洲精品一区二区三区蜜桃久 | 亚洲福利 | 国产韩国精品一区二区三区 | 国产区一区二区三区 | 黄色在线免费看 | 精品视频一区二区 | 久久久av | 日韩精品一区二区在线观看 | 国产精品欧美日韩 | 亚洲天堂中文字幕 | 狠狠操天天干 | 理论片免费在线观看 | 日韩欧美在线观看 | 亚洲国产精品久久久 | 成人网视频 | 人人人人干 | jdav视频在线观看免费 | 成人小视频在线免费观看 | 国产传媒毛片精品视频第一次 | 精品国产精品国产偷麻豆 | 在线免费观看黄视频 | 97人人干 | 精品一区二区三区视频在线观看 | 成人三级网址 | 成人性视频免费网站 | 久久久久久久久久久爱 | 欧美一区二区二区 | 紧缚调教一区二区三区视频 | av在线一区二区 | 97免费视频在线观看 | 国产精品成人一区二区三区 | 精品日韩一区二区三区 | 在线中文字幕日韩 | 国产一区二区三区四区 | 日韩欧美在线观看 | 日韩免费av| 亚洲精品一区二区在线观看 | 狠狠躁天天躁夜夜躁婷婷老牛影视 |