婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > html5通過postMessage進行跨域通信的方法

html5通過postMessage進行跨域通信的方法

熱門標簽:南寧點撥外呼系統哪家公司做的好 鎮江智能外呼系統有效果嗎 成都智能外呼系統平臺 四川點撥外呼系統 當涂高德地圖標注 電銷機器人電話用什么卡 云南大理400電話申請官方 江蘇智能電銷機器人哪家好 黃島區地圖標注

最近工作中遇到一個需求,場景是:h5頁作為預覽模塊內嵌在pc頁中,用戶在pc頁中能夠做一些操作,然后h5做出響應式變化,達到預覽的效果。

這里首先想到就是把h5頁面用iframe內嵌到pc網頁中,然后pc通過postMessage方法,把變化的數據發送給iframe,iframe內嵌的h5通過addEventListener接收數據,再對數據做響應式的變化。

這里總結一下postMessage的使用,api很簡單:

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

otherWindow是目標窗口的引用,在當前場景下就是iframe.contentWindow;

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

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

當postMessage()被調用的時,一個消息事件就會被分發到目標窗口上。該接口有一個message事件,該事件有幾個重要的屬性:

1.data:顧名思義,是傳遞來的message
2.source:發送消息的窗口對象
3.origin:發送消息窗口的源(協議+主機+端口號)

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

可選參數transfer 是一串和message 同時傳遞的 Transferable 對象. 這些對象的所有權將被轉移給消息的接收方,而發送一方將不再保有所有權。

那么,當iframe初始化后,可以通過下面代碼獲取到iframe的引用并發送消息:

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

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

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

在接收時,可以根據需要,對消息來源origin做一下過濾,避免接收到非法域名的消息導致的xss攻擊。

最后,為了代碼復用,把消息發送和接收封裝成一個類,同時模擬了消息類型的api,使用起來非常方便。具體代碼如下:

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);
    }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:十堰 咸寧 西寧 南京 淮安 佳木斯 酒泉 廣西

巨人網絡通訊聲明:本文標題《html5通過postMessage進行跨域通信的方法》,本文關鍵詞  html5,通過,postMessage,進行,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《html5通過postMessage進行跨域通信的方法》相關的同類信息!
  • 本頁收集關于html5通過postMessage進行跨域通信的方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲伦在线观看| 国产一区二区三区免费看| 久久亚洲捆绑美女| 日韩女优视频免费观看| 日韩一级欧美一级| 精品国产不卡一区二区三区| 日韩亚洲欧美成人一区| 精品精品欲导航| 久久久久久久久久久久久久久99 | 91在线高清观看| 成人手机电影网| 91蝌蚪porny成人天涯| 91麻豆国产香蕉久久精品| 欧美综合一区二区| 欧美一区二区视频网站| 精品国产第一区二区三区观看体验| 不卡av免费在线观看| 国产成人精品一区二区三区四区 | 成人国产精品免费| av成人免费在线| 色综合久久中文综合久久97| 日韩制服丝袜av| 香蕉久久一区二区不卡无毒影院| 日日摸夜夜添夜夜添精品视频| 视频在线在亚洲| 国内精品伊人久久久久av影院| 精品一区二区在线免费观看| 国产.欧美.日韩| 欧美性一二三区| 精品国产一区二区亚洲人成毛片| 欧美国产精品一区二区三区| 亚洲一区二区三区在线播放| 国产尤物一区二区| 91久久香蕉国产日韩欧美9色| 日韩一区二区在线看| 国产精品丝袜91| 日韩电影在线一区| 国产aⅴ综合色| 日韩视频一区二区三区在线播放 | 日韩理论片在线| 久热成人在线视频| 欧洲一区二区三区在线| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲免费观看视频| 国产精品综合在线视频| 欧美在线制服丝袜| 国产精品乱人伦中文| 麻豆成人久久精品二区三区小说| 色综合一个色综合| 久久久777精品电影网影网| 午夜精品福利一区二区蜜股av| 国产91丝袜在线18| 精品成人a区在线观看| 午夜精品国产更新| 在线免费观看一区| 国产精品久久久久永久免费观看| 免费成人小视频| 欧美日韩国产另类不卡| 亚洲男同性恋视频| 99精品视频在线观看免费| 欧美国产日韩在线观看| 国产美女在线观看一区| 亚洲精品一线二线三线无人区| 日韩中文字幕亚洲一区二区va在线 | 亚洲卡通动漫在线| 成人a区在线观看| 国产欧美一区在线| 国产夫妻精品视频| 国产欧美日韩精品在线| 国产精品99精品久久免费| 久久久亚洲精品一区二区三区| 免费精品视频在线| 69堂精品视频| 美女www一区二区| 欧美一区永久视频免费观看| 天堂成人国产精品一区| 欧美一区二区三区四区视频| 日韩精品电影在线观看| 欧美一区二区啪啪| 日本午夜精品一区二区三区电影 | 国产成人免费av在线| 亚洲女同一区二区| 国产日韩欧美一区二区三区综合| 色婷婷久久一区二区三区麻豆| 激情五月婷婷综合| 日本中文字幕一区二区视频| 亚洲色图在线看| 欧美激情中文字幕| 精品国产污网站| 国产欧美精品一区二区三区四区 | 欧美性生活大片视频| 久久婷婷色综合| proumb性欧美在线观看| 国产精品福利一区二区| 欧美亚洲国产一区在线观看网站| 日韩国产在线一| 久久蜜桃一区二区| 色综合久久综合| 免费日韩伦理电影| 亚洲国产高清在线观看视频| 色八戒一区二区三区| 久热成人在线视频| 亚洲人快播电影网| 日韩一卡二卡三卡| 99久久久国产精品免费蜜臀| 日日摸夜夜添夜夜添精品视频| 久久精品一区二区| 在线视频国内一区二区| 狠狠色丁香婷婷综合| 亚洲视频1区2区| 精品国产人成亚洲区| 欧美又粗又大又爽| 国产一区 二区 三区一级| 亚洲尤物视频在线| 国产亚洲欧美中文| 欧美一区二区三区免费视频| av在线不卡电影| 国产精品乡下勾搭老头1| 亚洲高清免费观看高清完整版在线观看| 精品国产91乱码一区二区三区| 成人精品视频一区二区三区尤物| 午夜久久福利影院| 国产精品久久久久久久久免费桃花 | 亚洲韩国一区二区三区| 久久美女高清视频| 欧美视频完全免费看| 成人18视频日本| 久久er精品视频| 天天影视色香欲综合网老头| 国产精品电影一区二区| 久久综合色鬼综合色| 欧美日韩一二三| www.欧美日韩| 国产美女精品一区二区三区| 午夜激情久久久| 亚洲女同ⅹxx女同tv| 国产拍欧美日韩视频二区| 91精品午夜视频| 欧美丰满少妇xxxbbb| 欧美日韩一级视频| 欧美曰成人黄网| 欧美在线观看视频在线| 色综合天天狠狠| 97久久超碰国产精品| 成人黄色小视频| 本田岬高潮一区二区三区| 国产成人综合精品三级| 国产精品一区二区男女羞羞无遮挡| 日韩av在线播放中文字幕| 日韩精品亚洲一区二区三区免费| 亚洲一区二区三区四区五区黄| 亚洲欧美电影院| 夜夜嗨av一区二区三区四季av| 亚洲免费在线看| 玉米视频成人免费看| 亚洲一区二三区| 日本伊人午夜精品| 国产一区二区三区在线观看免费视频 | 欧美一区二区三区在线看| 91麻豆精品国产91久久久使用方法| 欧美日韩在线电影| 91精品欧美一区二区三区综合在 | 韩国在线一区二区| 国产一区二区三区香蕉| 成人国产精品免费| 欧美性视频一区二区三区| 在线电影一区二区三区| 精品国精品自拍自在线| 国产精品理论片| 一区二区视频在线看| 日韩电影在线免费观看| 国产麻豆日韩欧美久久| 91农村精品一区二区在线| 欧美在线播放高清精品| 欧美成人在线直播| 亚洲丝袜另类动漫二区| 天堂va蜜桃一区二区三区漫画版| 国产一区福利在线| 91黄色免费看| 26uuu色噜噜精品一区二区| 亚洲欧美视频在线观看| 麻豆91在线看| 91丨九色丨蝌蚪丨老版| 91精品久久久久久久99蜜桃| 久久精品无码一区二区三区| 亚洲自拍偷拍九九九| 韩国成人福利片在线播放| 欧美亚洲国产一卡| 国产网站一区二区三区| 亚洲va韩国va欧美va| 不卡的av网站| 久久久亚洲精华液精华液精华液 | 欧美亚洲另类激情小说| 久久精品亚洲麻豆av一区二区| 一区二区三区国产精华| 国产一区二区三区免费看| 欧美日本视频在线| 亚洲人123区| 成人黄动漫网站免费app| 蜜桃av噜噜一区|