婷婷综合国产,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
    中文字幕乱码一区二区免费| 日韩午夜三级在线| 国产精品看片你懂得| 欧美精品丝袜久久久中文字幕| 日韩美女啊v在线免费观看| 欧美日韩国产高清一区| 亚洲色图另类专区| 中文字幕欧美一区| 欧美男女性生活在线直播观看| 丁香另类激情小说| 日欧美一区二区| 亚州成人在线电影| 国产视频一区二区三区在线观看| 欧美大片在线观看一区| 欧美精品少妇一区二区三区| 91丨porny丨户外露出| 久久国产精品72免费观看| 日韩av在线播放中文字幕| 亚洲国产日韩av| 一级特黄大欧美久久久| 亚洲一区二区三区四区在线免费观看 | 国产午夜久久久久| 久久九九久久九九| 国产日韩精品视频一区| 国产日韩欧美精品在线| 久久女同互慰一区二区三区| 国产亚洲欧美一区在线观看| 国产精品久久久久婷婷二区次| 中文字幕一区日韩精品欧美| 一区二区视频在线| 爽好多水快深点欧美视频| 免费高清在线一区| 国产尤物一区二区| av激情亚洲男人天堂| 欧美性一二三区| 日韩一级片在线播放| 26uuu亚洲综合色| 日韩一区日韩二区| 日日夜夜精品免费视频| 国产成人午夜精品5599| 91麻豆精东视频| 69p69国产精品| 欧美激情综合五月色丁香小说| 国产精品久久久久久久久免费樱桃| 一区二区三区影院| 激情丁香综合五月| 99视频在线精品| 欧美一区2区视频在线观看| 久久婷婷色综合| 亚洲一二三区在线观看| 久久电影国产免费久久电影| 成人精品免费网站| 欧美日韩精品二区第二页| 中文字幕va一区二区三区| 亚洲成人中文在线| 国产麻豆精品视频| 日韩成人免费电影| 国产精品综合一区二区| 色综合久久66| 久久久午夜精品理论片中文字幕| 一区二区三区免费| 国产精品白丝jk黑袜喷水| 欧美日韩高清影院| 亚洲美女免费视频| 大桥未久av一区二区三区中文| 欧美一区二区三区系列电影| 亚洲欧洲精品一区二区三区| 国产一区在线观看麻豆| 欧美一区二区视频免费观看| 亚洲天堂av一区| 国产麻豆日韩欧美久久| 日韩一级片在线观看| 一区二区三区蜜桃网| 成人在线综合网站| 日韩欧美你懂的| 亚洲国产精品一区二区www在线| 国产中文字幕精品| 欧美成人综合网站| 日韩精品一级二级| 91精品国产免费久久综合| 中文字幕av不卡| 国产自产2019最新不卡| 91精品国产综合久久久久久久久久 | 成人深夜在线观看| 2021中文字幕一区亚洲| 日韩国产在线观看| 这里是久久伊人| 青青草伊人久久| 欧美人牲a欧美精品| 亚洲第一成年网| 在线观看欧美日本| 亚洲成精国产精品女| 欧美性一二三区| 午夜精品免费在线| 欧美一级片在线观看| 日韩 欧美一区二区三区| 制服丝袜中文字幕一区| 九九久久精品视频| 亚洲精品少妇30p| 97精品视频在线观看自产线路二| 国产精品久久午夜夜伦鲁鲁| 99精品偷自拍| 亚洲一区二区三区三| 欧美日韩mp4| 免费久久99精品国产| 欧美日本在线一区| 久久国产精品72免费观看| 久久久777精品电影网影网 | 欧美日韩精品系列| 婷婷久久综合九色国产成人| 日韩欧美视频在线| 成人永久aaa| 亚洲成在人线免费| 精品国产一区二区精华| 岛国av在线一区| 亚洲成人在线观看视频| 精品国产一区二区三区不卡 | 亚洲精品一卡二卡| 91麻豆精品国产91久久久久| 韩国三级电影一区二区| 国产精品国产三级国产三级人妇 | 色婷婷av久久久久久久| 日韩精品一区第一页| 久久亚洲综合色一区二区三区| 成人高清视频免费观看| 午夜电影网亚洲视频| 久久久电影一区二区三区| 91亚洲精华国产精华精华液| 五月激情综合网| 国产精品久久久久久久久免费桃花 | 色吧成人激情小说| 奇米色777欧美一区二区| 久久久久久久久岛国免费| 欧美在线免费观看亚洲| 国产一区二区三区不卡在线观看| 亚洲精品国产无套在线观| 日韩一区二区免费视频| 91一区二区三区在线观看| 久久精品99国产精品| 亚洲免费视频中文字幕| 久久亚洲一级片| 欧美日韩视频第一区| 99国产精品国产精品毛片| 国内精品国产三级国产a久久| 亚洲一区二区偷拍精品| 中文一区二区完整视频在线观看| 欧美日韩精品一区二区三区蜜桃| 成人教育av在线| 久久99热这里只有精品| 亚洲成人1区2区| 亚洲视频图片小说| 精品国产免费视频| 欧美日韩中文字幕一区二区| 91在线观看污| 成人高清免费观看| 国产91清纯白嫩初高中在线观看| 人人精品人人爱| 日韩福利视频网| 午夜久久福利影院| 亚洲国产三级在线| 亚洲精品菠萝久久久久久久| 国产精品你懂的| 国产日韩av一区二区| 久久综合九色欧美综合狠狠 | 国产亚洲人成网站| 久久综合色天天久久综合图片| 日韩一区二区三区四区| 欧美区视频在线观看| 欧美日韩二区三区| 69堂精品视频| 日韩亚洲国产中文字幕欧美| 欧美丰满少妇xxxbbb| 欧美精品久久一区| 欧美一级一区二区| 欧美va亚洲va| 久久久久久久久久久久久女国产乱| 欧美精品一区二区在线观看| 精品国偷自产国产一区| 精品久久一二三区| 国产亚洲欧美中文| 综合在线观看色| 亚洲电影视频在线| 奇米777欧美一区二区| 精品影视av免费| 国产成人高清视频| 日本二三区不卡| 欧美酷刑日本凌虐凌虐| 欧美一级欧美三级| 久久亚洲一区二区三区四区| 国产精品系列在线| 亚洲精品日韩综合观看成人91| 亚洲国产中文字幕在线视频综合| 午夜国产不卡在线观看视频| 激情综合色综合久久| 成人性视频免费网站| 一本色道亚洲精品aⅴ| 欧美一区二区黄| 国产色婷婷亚洲99精品小说| 综合色天天鬼久久鬼色| 亚洲在线成人精品|