最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript使用HTML5的window.postMessage實(shí)現(xiàn)跨域通信例子

 更新時(shí)間:2014年04月11日 08:34:03   作者:  
這篇文章主要介紹了JavaScript使用HTML5的window.postMessage實(shí)現(xiàn)跨域通信例子,需要的朋友可以參考下

JavaScript由于同源策略的限制,跨域通信一直是棘手的問(wèn)題。當(dāng)然解決方案也有很多:
1.document.domain+iframe的設(shè)置,應(yīng)用于主域相同而子域不同;
2.利用iframe和location.hash,數(shù)據(jù)直接暴露在了url中,數(shù)據(jù)容量和類型都有限
3.Flash LocalConnection, 對(duì)象可在一個(gè) SWF 文件中或多個(gè) SWF 文件間進(jìn)行通信, 只要

在同一客戶端就行,跨應(yīng)用程序, 可以跨域。
window.name 保存數(shù)據(jù)以及跨域 iframe 靜態(tài)代理動(dòng)態(tài)傳輸方案,充分的運(yùn)用了window.name因?yàn)轫?yè)面的url改變而name不改變的特性。
各種方案網(wǎng)上都有很多實(shí)例代碼,大家可以自己搜索一下。

html5中最炫酷的API之一:就是 跨文檔消息傳輸Cross Document Messaging。高級(jí)瀏覽器Internet Explorer 8+, chrome,F(xiàn)irefox , Opera 和 Safari 都將支持這個(gè)功能。這個(gè)功能實(shí)現(xiàn)也非常簡(jiǎn)單主要包括接受信息的”message”事件和發(fā)送消息的”postMessage”方法。

發(fā)送消息的”postMessage”方法

向外界窗口發(fā)送消息:

復(fù)制代碼 代碼如下:
otherWindow.postMessage(message, targetOrigin);

otherWindow: 指目標(biāo)窗口,也就是給哪個(gè)window發(fā)消息,是 window.frames 屬性的成員或者由 window.open 方法創(chuàng)建的窗口
參數(shù)說(shuō)明:
1.message: 是要發(fā)送的消息,類型為 String、Object (IE8、9 不支持)
2.targetOrigin: 是限定消息接收范圍,不限制請(qǐng)使用 ‘*'

接受信息的”message”事件

復(fù)制代碼 代碼如下:

var onmessage = function (event) {
var data = event.data;
var origin = event.origin;
//do someing
};
if (typeof window.addEventListener != 'undefined') {
window.addEventListener('message', onmessage, false);
} else if (typeof window.attachEvent != 'undefined') {
//for ie
window.attachEvent('onmessage', onmessage);
}

回調(diào)函數(shù)第一個(gè)參數(shù)接收 Event 對(duì)象,有三個(gè)常用屬性:
1.data: 消息
2.origin: 消息來(lái)源地址
3.source: 源 DOMWindow 對(duì)象

當(dāng)然postmessage也有一些不足的地方:
1.ie8,ie9下傳遞的數(shù)據(jù)類型值支持字符串類型,不過(guò)可以使用用 JSON對(duì)象和字符串之間的相互轉(zhuǎn)換 來(lái)解決這個(gè)問(wèn)題;
2.ie6,ie7需要寫兼容方案,個(gè)人認(rèn)為window.name比較靠譜;

相關(guān)文章

  • 詳解js中構(gòu)造流程圖的核心技術(shù)JsPlumb

    詳解js中構(gòu)造流程圖的核心技術(shù)JsPlumb

    這篇文章主要介紹了js中構(gòu)造流程圖的核心技術(shù)JsPlumb,jsPlumb是一個(gè)強(qiáng)大的JavaScript連線庫(kù),它可以將html中的元素用箭頭、曲線、直線等連接起來(lái),適用于開(kāi)發(fā)Web上的圖表、建模工具等,需要的朋友可以參考下
    2015-12-12
  • 最新評(píng)論

    高阳县| 庄浪县| 桂林市| 延长县| 新田县| 金乡县| 永川市| 承德县| 英吉沙县| 焦作市| 凭祥市| 社会| 濮阳市| 青州市| 泸州市| 岐山县| 石嘴山市| 收藏| 涿州市| 江川县| 宝兴县| 嫩江县| 鹿泉市| 伽师县| 囊谦县| 年辖:市辖区| 滦南县| 苍山县| 木兰县| 邵东县| 阳谷县| 秦安县| 湛江市| 宝清县| 开平市| 寿阳县| 崇义县| 临夏县| 玛曲县| 怀来县| 宁都县|