成人免费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

2011-05-13 17:41:40

2011-01-14 17:53:33

HTML5cssweb

2012-05-25 15:48:59

HTML5

2011-05-11 12:59:18

HTML5

2012-08-27 10:00:06

HTML5

2012-06-25 14:57:27

HTML5

2015-04-30 11:26:38

HTML5與APP的抉

2016-05-13 17:14:51

華為HTML5

2012-08-31 17:09:31

FacebookHTML5W3C

2019-05-29 19:00:35

HTML5存儲方式前端

2011-07-26 10:46:04

HTML 5

2013-03-22 08:59:57

HTML5移動應用Web App
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲成人精品 | 久久亚洲一区二区三区四区 | 久久国产一区二区三区 | 国色天香综合网 | 人人精品 | 国产精品18久久久 | 久久国产精品一区 | 色婷婷精品久久二区二区蜜臂av | 国产精品久久久久一区二区三区 | 亚洲精品福利在线 | 国产性生活一级片 | 色综合一区二区三区 | 中文字幕一区在线观看视频 | 激情av在线 | 国产一区二区三区在线视频 | 91免费看片神器 | 日韩欧美高清dvd碟片 | 中文字幕一区在线 | 在线成人免费视频 | 四虎影视一区二区 | 在线超碰 | 一区二区三区av | 罗宾被扒开腿做同人网站 | 久久精品无码一区二区三区 | 亚洲欧美在线视频 | 亚洲视频一区在线 | 天天爽综合网 | 91视频电影 | 欧美极品在线播放 | 国产成人精品午夜视频免费 | 蜜桃精品视频在线 | 精品自拍视频 | 精品国产一区二区三区日日嗨 | 亚洲精品高清视频在线观看 | 日日操操 | 黑人性hd | 黄色一级免费 | 国产在线1| 狠狠婷婷综合久久久久久妖精 | 成人激情免费视频 | 日韩在线免费视频 |