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

主頁 > 知識庫 > 詳解使用postMessage解決iframe跨域通信問題

詳解使用postMessage解決iframe跨域通信問題

熱門標簽:惡搞電話機器人 電話機器人技術 地圖標注軟件打印出來 欣鼎電銷機器人 效果 高德地圖標注商戶怎么標 黃石ai電銷機器人呼叫中心 ok電銷機器人 智能電銷機器人被禁用了么 如何查看地圖標注

這周碰到一個讓人頭疼的需求:要在我的web項目中嵌入另一個第三方web項目。第一時間想到的就是用iframe了,但問題來了,我和第三方web項目是有交互的,這就違反同源策略了,處理跨域問題是最讓人頭疼的事之一。

需求是這樣的,在我的頁面點擊一些按鈕,要實時反饋到iframe子頁面,子頁面再進行響應。

當時腦子里第一時間想到的解決方案是:用NGINX把兩個項目代理到同一域名下。但這樣似乎有點小題大做了,有沒有更方便快捷的方法呢?

在window對象下有個postMessage方法,是專門用來解決跨域通信問題的。

關于postMessage的詳細介紹請戳這里,不過MDN的文檔太詳細了,導致有些同學看完還是一臉懵逼,下面我們就來看看怎么用postMessage實現iframe跨域通信,當你會用了之后再回去看文檔,感覺是完全不同的。

首先我們模擬場景,假設有兩個不同源的頁面,iframePage.html是index.html的子頁面:

<!-- index.html -->

<body style="border:5px solid #333;">

  <h1>this is index</h1>

  <iframe src="./iframePage.html" id='myframe'></iframe>

</body>
<!-- iframePage -->

<body style="border:5px solid #333;">

  <h1>this is iframePage</h1>

</body>

現在這兩個iframe是無法通信,因為它們是不同源的(假設存在跨域問題),這時候就要用到postMessage了。

我們先試著從父頁面向子頁面發送一條消息:

// idnex.html

//獲取iframe元素
iFrame = document.getElementById('myframe')

//iframe加載完畢后再發送消息,否則子頁面接收不到message
iFrame.onload = function(){

  //iframe加載完立即發送一條消息
  iFrame.contentWindow.postMessage('MessageFromIndex1','*');

}

我們知道postMessage是掛載在window對象上的,所以等iframe加載完畢后,用iFrame.contentWindow獲取到iframe的window對象,然后調用postMessage方法,相當于給子頁面發送了一條消息。

postMessage方法第一個參數是要發送的數據,可以是任何原始類型的數據。

Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)之前,第一個參數必須是一個字符串。

postMessage方法第二個參數可以設置要發送到哪個url,如果當前子頁面的url和設置的不一致,則會發送失敗,我們設置為*,代表所有url都允許發送。

postMessage方法還有第三個參數,屬于高級用法,這里不做討論,可以稍后去MDN了解。

消息發送到iframePage.html,我們來接收message:

// iframePage.html

//回調函數
function receiveMessageFromIndex ( event ) {
  console.log( 'receiveMessageFromIndex', event )
}

//監聽message事件
window.addEventListener("message", receiveMessageFromIndex, false);

我們只需要在子頁面監聽message事件,并且設置好回調函數即可,來看看打印出來的event:

event對象中的data屬性存放著我們從父頁面傳過來的數據,就這么簡單!

讓我們再試試從子頁面發送數據給父頁面:

// iframePage.html

//給父頁面發送消息,data為對象
parent.postMessage( {msg: 'MessageFromIframePage'}, '*');

父頁面接收數據:

//index.html

//回調函數
function receiveMessageFromIframePage (event) {
    console.log('receiveMessageFromIframePage', event)
}

//監聽message事件
window.addEventListener("message", receiveMessageFromIframePage, false);

我看看到,的確可以傳輸不同的數據,此時data為一個對象:

大家可以到postMessage-demo把代碼clone下來運行試試看。

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

標簽:盤錦 綏化 中山 聊城 萍鄉 赤峰 阿壩 金昌

巨人網絡通訊聲明:本文標題《詳解使用postMessage解決iframe跨域通信問題》,本文關鍵詞  詳解,使用,postMessage,解決,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解使用postMessage解決iframe跨域通信問題》相關的同類信息!
  • 本頁收集關于詳解使用postMessage解決iframe跨域通信問題的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲乱码国产乱码精品精可以看| 99久久99久久久精品齐齐| 久久久久久久精| 欧美日韩精品久久久| 99久久伊人网影院| 国产福利一区二区三区视频在线| 免费成人小视频| 婷婷丁香激情综合| 久久婷婷久久一区二区三区| 色综合天天综合网国产成人综合天| 国产乱子伦视频一区二区三区| 免费观看久久久4p| 日韩av在线发布| 日韩高清中文字幕一区| 视频一区视频二区中文| 午夜亚洲国产au精品一区二区 | 亚洲国产毛片aaaaa无费看| 日韩美女一区二区三区| 日韩欧美国产麻豆| 欧美大片拔萝卜| 久久综合九色综合欧美就去吻| 日韩精品一区二区三区视频在线观看| 69堂亚洲精品首页| 日韩欧美不卡在线观看视频| 日韩欧美激情一区| 欧美成人性战久久| 精品第一国产综合精品aⅴ| 亚洲精品在线观看网站| 久久精品亚洲精品国产欧美kt∨| 欧美疯狂做受xxxx富婆| 欧美大片日本大片免费观看| 久久综合九色综合97婷婷| 久久亚洲精华国产精华液 | 欧美一卡2卡三卡4卡5免费| 欧美日韩精品一区二区在线播放| 91精品视频网| 日韩美女一区二区三区四区| 国产偷v国产偷v亚洲高清| 久久精品亚洲一区二区三区浴池| 日韩一区在线看| 性欧美大战久久久久久久久| 麻豆精品视频在线观看视频| 国产精品亚洲午夜一区二区三区| 不卡的看片网站| 欧美乱妇一区二区三区不卡视频| 欧美mv日韩mv国产网站| 亚洲欧洲国产专区| 性久久久久久久久久久久 | 国产一区二区三区精品视频| 99久久久精品| 欧美日韩二区三区| 国产日韩精品视频一区| 性欧美疯狂xxxxbbbb| 国产激情精品久久久第一区二区| 欧美亚洲图片小说| 国产日韩欧美精品电影三级在线| 亚洲伊人色欲综合网| 日本不卡一二三区黄网| 成人精品鲁一区一区二区| 欧美日韩精品三区| 亚洲欧洲国产日本综合| 国模无码大尺度一区二区三区| 一本到三区不卡视频| 久久久国际精品| 日韩影视精彩在线| 91久久精品网| 日韩欧美国产一区二区三区 | 日韩一区二区三区观看| 亚洲精品欧美在线| 丰满岳乱妇一区二区三区| 日韩欧美自拍偷拍| 视频一区免费在线观看| 在线一区二区三区四区五区| 国产亚洲综合在线| 国产综合久久久久久鬼色| 色欧美片视频在线观看 | 2023国产精品视频| 日韩主播视频在线| 欧美日韩国产综合一区二区| 亚洲品质自拍视频网站| 色综合久久中文综合久久97| 欧美激情在线观看视频免费| 国产一区二区三区在线观看精品 | 欧美性大战xxxxx久久久| 国产精品电影一区二区三区| 日韩黄色免费电影| 在线播放欧美女士性生活| 亚洲国产另类精品专区| 欧美在线一二三| 亚洲成av人**亚洲成av**| 欧美三级日韩在线| 午夜精品福利在线| 欧美一区国产二区| 久久精品噜噜噜成人88aⅴ| 91精品国产欧美一区二区| 天堂久久一区二区三区| 欧美亚洲禁片免费| 1024国产精品| 91免费国产在线观看| 一区二区三区四区中文字幕| 欧美综合久久久| 午夜精品一区二区三区电影天堂| 欧美日本在线播放| 免费观看91视频大全| 欧美videos大乳护士334| 国产一区不卡精品| 亚洲欧洲精品天堂一级 | 亚洲国产va精品久久久不卡综合 | 久久免费国产精品| 成人av片在线观看| 亚洲黄色录像片| 欧美一级日韩不卡播放免费| 精品一区二区影视| 中文乱码免费一区二区| 在线视频你懂得一区| 免费日本视频一区| 中文字幕av资源一区| 欧美色视频在线观看| 久久精品久久综合| www一区二区| av不卡在线观看| 免费人成精品欧美精品| 国产农村妇女精品| 67194成人在线观看| 国产不卡视频在线观看| 亚洲第一在线综合网站| 国产婷婷色一区二区三区在线| 欧美亚洲图片小说| 国产精品一区二区不卡| 亚洲一区电影777| 中文字幕第一区| 精品久久久久久久久久久久包黑料 | 欧美三级韩国三级日本三斤| 狠狠色综合播放一区二区| 亚洲精品成人a在线观看| 欧美岛国在线观看| 欧美性xxxxxxxx| 成人网页在线观看| 久久国产福利国产秒拍| 亚洲成av人片一区二区三区 | 国产午夜精品理论片a级大结局| 在线观看www91| 东方aⅴ免费观看久久av| 免费在线观看一区| 亚洲综合免费观看高清完整版 | 日韩电影在线看| 亚洲免费在线播放| 久久婷婷色综合| 欧美一区二区三区在线观看| 色香色香欲天天天影视综合网| 国产一区二区三区在线观看免费| 爽爽淫人综合网网站| 久久嫩草精品久久久精品一| 一本色道**综合亚洲精品蜜桃冫| 亚洲1区2区3区4区| 亚洲成人午夜影院| 亚洲欧美偷拍另类a∨色屁股| 欧美zozo另类异族| 精品粉嫩aⅴ一区二区三区四区| 2024国产精品| 国产精品区一区二区三区| 国产精品久久久久久户外露出 | 亚洲免费观看在线视频| 亚洲一二三级电影| 美女视频免费一区| 成人一区在线看| 色偷偷久久一区二区三区| 欧美乱熟臀69xxxxxx| 亚洲精品一区二区精华| 中文字幕一区在线观看| 亚洲午夜在线观看视频在线| 久久精品国产**网站演员| 顶级嫩模精品视频在线看| 91成人免费在线| 日韩一区二区精品在线观看| 国产亚洲精品7777| 一区二区三区小说| 精品一区二区三区香蕉蜜桃 | 亚洲午夜在线视频| 国产最新精品精品你懂的| 99久久精品国产精品久久| 欧美丰满嫩嫩电影| 中文欧美字幕免费| 奇米色777欧美一区二区| 成人黄动漫网站免费app| 欧美丰满美乳xxx高潮www| 久久久精品国产免费观看同学| 一区二区在线观看免费视频播放| 午夜成人在线视频| 99精品欧美一区二区蜜桃免费| 日韩一区二区三区视频在线观看| 成人欧美一区二区三区黑人麻豆| 免费在线观看一区| 欧美又粗又大又爽| 国产午夜久久久久| 日本视频免费一区| 91女厕偷拍女厕偷拍高清| 久久精品在线观看| 美洲天堂一区二卡三卡四卡视频| 色综合天天综合给合国产|