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

主頁(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)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    久久9热精品视频| 夜夜嗨av一区二区三区网页| 日本韩国欧美一区| proumb性欧美在线观看| 亚洲综合网站在线观看| 久久免费美女视频| 在线播放日韩导航| 亚洲黄色片在线观看| 国产精品视频免费| 精品福利一区二区三区| 欧美精品久久天天躁| 91精品国产综合久久精品麻豆 | 92国产精品观看| 中文字幕在线播放不卡一区| 欧美一级高清大全免费观看| 成人自拍视频在线观看| 免费观看久久久4p| 亚洲午夜激情网页| 亚洲美腿欧美偷拍| 久久久噜噜噜久久人人看| 777精品伊人久久久久大香线蕉| 91麻豆国产在线观看| 成人午夜激情影院| 色av成人天堂桃色av| 93久久精品日日躁夜夜躁欧美| 成人精品高清在线| 国产精品18久久久久久久久| 免费看日韩a级影片| 一级特黄大欧美久久久| 亚洲免费在线看| 亚洲女同ⅹxx女同tv| 青青草一区二区三区| 亚洲成国产人片在线观看| 亚洲制服丝袜在线| 国产午夜精品福利| 国产日产欧美精品一区二区三区| 精品国产一区二区三区忘忧草| 日韩精品一区二区三区视频 | 欧美aⅴ一区二区三区视频| 亚洲va国产va欧美va观看| 伊人开心综合网| 日韩av电影一区| 黄色日韩网站视频| 久88久久88久久久| 国产超碰在线一区| 国产剧情一区二区| 日韩精品一卡二卡三卡四卡无卡| 日韩国产欧美在线播放| 日韩电影免费在线看| 床上的激情91.| 色综合天天在线| 国产精品一区二区免费不卡 | 婷婷夜色潮精品综合在线| 国产亚洲福利社区一区| 国产精品美女一区二区三区 | 国产精品99久久久久久似苏梦涵| 国产精品三级av| 亚洲欧美韩国综合色| 中文字幕欧美日韩一区| 久久综合色婷婷| 99re这里只有精品6| 91欧美一区二区| 欧美日韩在线播放三区四区| 高清日韩电视剧大全免费| 成人免费黄色在线| 一区二区三区中文在线| 国产精品丝袜久久久久久app| 色偷偷88欧美精品久久久| 成人网在线播放| 国产一区亚洲一区| 色综合久久综合网| 国产欧美日韩久久| 国产精品高潮呻吟| 亚洲va韩国va欧美va精品| 美女在线视频一区| 成人一区二区三区在线观看| 国产成人一区在线| 国产91高潮流白浆在线麻豆| 激情欧美一区二区| 欧美老肥妇做.爰bbww视频| 精品免费一区二区三区| 最新欧美精品一区二区三区| 东方aⅴ免费观看久久av| 久久99精品久久久| 91丨porny丨首页| 国产精品午夜电影| 久久国产精品无码网站| 国产精品99久久久久| 91麻豆swag| 成人午夜看片网址| 亚洲欧美另类久久久精品| 麻豆视频观看网址久久| 在线精品视频免费观看| 欧美日韩一区二区三区免费看| 男人的天堂久久精品| 国产精品乱人伦| 久久精品欧美日韩| 成人成人成人在线视频| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲成人777| 日本一区中文字幕| 国产一区二区三区日韩| 7777女厕盗摄久久久| 欧美午夜在线一二页| 国产一区二区三区四区五区美女| 北岛玲一区二区三区四区| 欧美成人精品二区三区99精品| 欧美激情一区在线观看| 中文子幕无线码一区tr| 国产成人av资源| 91精品国产综合久久蜜臀 | 久久色中文字幕| 3d动漫精品啪啪一区二区竹菊| 亚洲综合久久久久| 久久99国内精品| 中国色在线观看另类| 一区二区成人在线观看| 国产精品一区二区黑丝| 国产色一区二区| av影院午夜一区| 欧美日韩不卡一区| 欧美精品v日韩精品v韩国精品v| 久久久电影一区二区三区| 欧美一区二区三区免费观看视频| 884aa四虎影成人精品一区| 欧美高清一级片在线| 久久日一线二线三线suv| 欧美一级精品在线| 欧美亚洲国产一区二区三区va| 日本美女一区二区三区视频| 久久精品亚洲国产奇米99| 亚洲视频你懂的| 日韩欧美黄色影院| 亚洲乱码中文字幕| 99久久精品费精品国产一区二区| 欧美成人aa大片| 国产日韩av一区| 国产精品一区三区| 日韩一级免费观看| 成人av网站免费| 亚洲一区二区三区四区五区中文 | 久久久久久一级片| 性感美女久久精品| 亚洲婷婷国产精品电影人久久| 成人高清伦理免费影院在线观看| 在线中文字幕一区| 日韩一区二区视频| 亚洲欧洲三级电影| 成人国产在线观看| 欧美成人官网二区| 成人av一区二区三区| 亚洲免费观看高清在线观看| 成人黄色av网站在线| 一区二区免费在线| 97超碰欧美中文字幕| 国产欧美日韩另类一区| 国产69精品久久99不卡| 欧美日韩高清一区| 九九在线精品视频| 国产麻豆一精品一av一免费| 久久久久久夜精品精品免费| 天堂va蜜桃一区二区三区 | 26uuu欧美| 一区二区三区久久久| 一区2区3区在线看| 精品国产不卡一区二区三区| 国产精品一品二品| 欧美日本在线播放| 久久先锋影音av鲁色资源网| 亚洲精品ww久久久久久p站| 不卡的av电影在线观看| 奇米精品一区二区三区四区 | 中文字幕av一区 二区| 欧美日韩电影在线| 久久99久久99| 亚洲成人午夜电影| 精品日韩在线观看| 国产米奇在线777精品观看| 国产精品入口麻豆原神| 欧美影院午夜播放| 日韩电影免费在线看| 精品国产91洋老外米糕| 国内久久精品视频| 有码一区二区三区| 欧美区在线观看| 91精品国产综合久久福利软件| 99久久精品免费看| 日本黄色一区二区| 亚洲成人动漫精品| 国产日韩精品视频一区| 男人的j进女人的j一区| 91 com成人网| 不卡视频在线看| 欧美精品一区二区三区很污很色的 | 亚洲欧洲色图综合| 日韩—二三区免费观看av| 五月婷婷激情综合网| 国产精品美女视频| 中文字幕精品一区二区精品绿巨人| 欧美日韩在线播放|