校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > html5通過(guò)postMessage進(jìn)行跨域通信的方法

html5通過(guò)postMessage進(jìn)行跨域通信的方法

熱門標(biāo)簽:南寧點(diǎn)撥外呼系統(tǒng)哪家公司做的好 鎮(zhèn)江智能外呼系統(tǒng)有效果嗎 成都智能外呼系統(tǒng)平臺(tái) 四川點(diǎn)撥外呼系統(tǒng) 當(dāng)涂高德地圖標(biāo)注 電銷機(jī)器人電話用什么卡 云南大理400電話申請(qǐng)官方 江蘇智能電銷機(jī)器人哪家好 黃島區(qū)地圖標(biāo)注

最近工作中遇到一個(gè)需求,場(chǎng)景是:h5頁(yè)作為預(yù)覽模塊內(nèi)嵌在pc頁(yè)中,用戶在pc頁(yè)中能夠做一些操作,然后h5做出響應(yīng)式變化,達(dá)到預(yù)覽的效果。

這里首先想到就是把h5頁(yè)面用iframe內(nèi)嵌到pc網(wǎng)頁(yè)中,然后pc通過(guò)postMessage方法,把變化的數(shù)據(jù)發(fā)送給iframe,iframe內(nèi)嵌的h5通過(guò)addEventListener接收數(shù)據(jù),再對(duì)數(shù)據(jù)做響應(yīng)式的變化。

這里總結(jié)一下postMessage的使用,api很簡(jiǎn)單:

otherWindow.postMessage(message, targetOrigin, [transfer]);

otherWindow是目標(biāo)窗口的引用,在當(dāng)前場(chǎng)景下就是iframe.contentWindow;

message是發(fā)送的消息,在Gecko 6.0之前,消息必須是字符串,而之后的版本可以做到直接發(fā)送對(duì)象而無(wú)需自己進(jìn)行序列化;

targetOrigin表示設(shè)定目標(biāo)窗口的origin,其值可以是字符串"*"(表示無(wú)限制)或者一個(gè)URI。在發(fā)送消息的時(shí)候,如果目標(biāo)窗口的協(xié)議、主機(jī)地址或端口這三者的任意一項(xiàng)不匹配targetOrigin提供的值,那么消息就不會(huì)被發(fā)送;只有三者完全匹配,消息才會(huì)被發(fā)送。對(duì)于保密性的數(shù)據(jù),設(shè)置目標(biāo)窗口origin非常重要;

當(dāng)postMessage()被調(diào)用的時(shí),一個(gè)消息事件就會(huì)被分發(fā)到目標(biāo)窗口上。該接口有一個(gè)message事件,該事件有幾個(gè)重要的屬性:

1.data:顧名思義,是傳遞來(lái)的message
2.source:發(fā)送消息的窗口對(duì)象
3.origin:發(fā)送消息窗口的源(協(xié)議+主機(jī)+端口號(hào))

這樣就可以接收跨域的消息了,我們還可以發(fā)送消息回去,方法類似。

可選參數(shù)transfer 是一串和message 同時(shí)傳遞的 Transferable 對(duì)象. 這些對(duì)象的所有權(quán)將被轉(zhuǎn)移給消息的接收方,而發(fā)送一方將不再保有所有權(quán)。

那么,當(dāng)iframe初始化后,可以通過(guò)下面代碼獲取到iframe的引用并發(fā)送消息:

// 注意這里不是要獲取iframe的dom引用,而是iframe window的引用
const iframe = document.getElementById('myIFrame').contentWindow;
iframe.postMessage('hello world', 'http://yourhost.com');

在iframe中,通過(guò)下面代碼即可接收到消息。

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

在接收時(shí),可以根據(jù)需要,對(duì)消息來(lái)源origin做一下過(guò)濾,避免接收到非法域名的消息導(dǎo)致的xss攻擊。

最后,為了代碼復(fù)用,把消息發(fā)送和接收封裝成一個(gè)類,同時(shí)模擬了消息類型的api,使用起來(lái)非常方便。具體代碼如下:

export default class Messager {
    constructor(win, targetOrigin) {
        this.win = win;
        this.targetOrigin = targetOrigin;
        this.actions = {};
        window.addEventListener('message', this.handleMessageListener, false);
    }

    handleMessageListener = event => {
        if (!event.data || !event.data.type) {
            return;
        }
        const type = event.data.type;
        if (!this.actions[type]) {
            return console.warn(`${type}: missing listener`);
        }
        this.actions[type](event.data.value);
    }

    on = (type, cb) => {
        this.actions[type] = cb;
        return this;
    }

    emit = (type, value) => {
        this.win.postMessage({
            type, value
        }, this.targetOrigin);
        return this;
    }

    destroy() {
        window.removeEventListener('message', this.handleMessageListener);
    }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:十堰 咸寧 西寧 南京 淮安 佳木斯 酒泉 廣西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《html5通過(guò)postMessage進(jìn)行跨域通信的方法》,本文關(guān)鍵詞  html5,通過(guò),postMessage,進(jìn)行,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《html5通過(guò)postMessage進(jìn)行跨域通信的方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于html5通過(guò)postMessage進(jìn)行跨域通信的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    jlzzjlzz欧美大全| 国产91精品一区二区麻豆网站| 毛片不卡一区二区| 在线看国产一区二区| 国产精品国模大尺度视频| 麻豆一区二区在线| 日韩写真欧美这视频| 美女被吸乳得到大胸91| 制服丝袜亚洲网站| 午夜成人免费电影| 欧美乱妇一区二区三区不卡视频| 日本成人在线不卡视频| 97久久超碰精品国产| 国产精品理论在线观看| 91在线免费视频观看| 亚洲欧美一区二区三区国产精品 | 亚洲欧洲精品一区二区三区| 成人自拍视频在线观看| 久久久www成人免费无遮挡大片| 国产高清在线精品| 亚洲免费毛片网站| 日韩欧美一区二区在线视频| 国产精品白丝av| 国产精品日日摸夜夜摸av| 91在线观看成人| 五月天一区二区三区| 国产亚洲福利社区一区| 色国产精品一区在线观看| 日韩高清国产一区在线| 国产精品视频在线看| 亚洲欧美日韩精品久久久久| 一区二区三区四区在线播放| 欧美精品aⅴ在线视频| 国产一区二区免费看| 亚洲一区二区三区视频在线| 精品国产网站在线观看| 在线看日本不卡| 成人av免费在线播放| 经典三级一区二区| 亚洲国产成人精品视频| 亚洲欧洲日本在线| 国产亚洲va综合人人澡精品| 91麻豆精品国产自产在线 | 欧美日韩国产bt| 97久久精品人人爽人人爽蜜臀| 久久99精品一区二区三区| 亚洲亚洲精品在线观看| 国产精品美女久久久久久久久 | 日韩一二三四区| 色先锋aa成人| 一本久道久久综合中文字幕| 成人永久免费视频| 国产成人精品一区二区三区网站观看| 三级久久三级久久久| 一区二区三区不卡视频| 亚洲色图制服诱惑| 亚洲一二三四区不卡| 依依成人精品视频| 五月开心婷婷久久| 日韩影院免费视频| 美女在线一区二区| 国产在线看一区| av中文字幕在线不卡| 色噜噜狠狠一区二区三区果冻| 欧美在线你懂得| 欧美酷刑日本凌虐凌虐| 日韩午夜激情av| 国产欧美日本一区二区三区| 欧美色爱综合网| 在线观看国产日韩| 欧美精品一二三四| 久久精品一区二区三区不卡牛牛| 亚洲成人你懂的| 国产精品中文欧美| 在线精品视频免费播放| 日韩午夜电影av| 最新成人av在线| 久久疯狂做爰流白浆xx| 亚洲电影在线播放| 久久精品久久99精品久久| aaa亚洲精品| 日韩欧美国产1| 亚洲精品视频自拍| 国产成人av资源| 欧美精品日韩精品| 亚洲精品免费电影| 粉嫩一区二区三区在线看| 91精品国产综合久久久蜜臀图片| 欧美国产一区视频在线观看| 男人的天堂久久精品| 91在线观看成人| 国产精品美女一区二区| 极品少妇一区二区| 7777精品伊人久久久大香线蕉的| 中文字幕一区二区三区在线播放| 蜜桃视频在线观看一区| 欧美精品黑人性xxxx| 亚洲国产综合在线| 欧美三级乱人伦电影| 91黄视频在线| 国产精品日日摸夜夜摸av| 国产精品久久久久久久浪潮网站| 国内精品在线播放| 久久久影视传媒| 成人精品视频一区二区三区| 亚洲精品一区二区三区蜜桃下载| 香蕉久久一区二区不卡无毒影院| 色狠狠一区二区三区香蕉| **性色生活片久久毛片| 日本久久一区二区三区| 亚洲尤物视频在线| 欧美日韩中文字幕一区二区| 日韩精品1区2区3区| 欧美一级理论片| 91精品国产综合久久久蜜臀粉嫩| 亚洲精品一二三区| 91麻豆精品国产91久久久久久 | 欧美另类变人与禽xxxxx| 日韩av中文在线观看| 国产夜色精品一区二区av| 成人在线视频首页| 三级成人在线视频| 国产色产综合产在线视频| 99精品久久99久久久久| 三级欧美韩日大片在线看| 久久久亚洲精华液精华液精华液| 成熟亚洲日本毛茸茸凸凹| 日韩欧美一区二区视频| 国产成人亚洲精品青草天美| 亚洲视频在线观看一区| 4438x亚洲最大成人网| 高潮精品一区videoshd| 天堂av在线一区| 国产精品久久久久一区二区三区| 精品视频在线看| 不卡视频免费播放| 激情亚洲综合在线| 日韩激情一区二区| 一区二区三区久久久| 中文字幕第一区二区| 日韩三级在线免费观看| 欧美午夜精品电影| jizzjizzjizz欧美| 盗摄精品av一区二区三区| 久久99精品久久久久久久久久久久| 蜜臀av一区二区三区| 亚洲一二三区视频在线观看| 亚洲欧美日韩国产综合| 亚洲欧洲日韩女同| 亚洲另类中文字| 亚洲综合一区在线| 香蕉久久夜色精品国产使用方法 | 欧美日韩精品欧美日韩精品| av一区二区不卡| 99久久99久久精品免费看蜜桃| 成人激情免费视频| jiyouzz国产精品久久| 91福利视频网站| 欧美日韩一区二区三区四区五区| 欧美三级日韩三级| 26uuu精品一区二区三区四区在线| 国产日产欧美一区| 亚洲免费看黄网站| 精品一区二区av| 91在线视频免费91| 欧美一区二区三区小说| 91丨九色丨蝌蚪丨老版| 亚洲二区视频在线| 国产麻豆日韩欧美久久| 91丨九色丨国产丨porny| 制服视频三区第一页精品| 2020国产精品| 亚洲国产你懂的| 成人精品视频一区二区三区尤物| 日本黄色一区二区| 久久亚洲春色中文字幕久久久| 亚洲裸体在线观看| 韩国av一区二区| 56国语精品自产拍在线观看| 欧美激情在线一区二区| 美女诱惑一区二区| 色久综合一二码| 国产精品久久久久久久第一福利 | 亚洲视频在线一区观看| 国产精品自拍三区| 日韩一区二区三区免费观看| 国产精品萝li| 风流少妇一区二区| 久久蜜桃av一区精品变态类天堂| 偷拍一区二区三区四区| 欧美日韩性生活| 亚洲一区二区在线播放相泽| 色综合天天天天做夜夜夜夜做| 久久久久久一级片| 国产成人精品亚洲777人妖| 精品国产凹凸成av人导航| 免费在线观看视频一区| 日韩天堂在线观看| 免费国产亚洲视频| 日韩精品一区二区三区在线观看 |