亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

html5 postMessage前端跨域并前端監(jiān)聽的方法示例

2024-08-26 00:21:08
字體:
來源:轉載
供稿:網友

有時候會遇到傻X需求,比如前端單點登陸!遇到需求,就要去想解決辦法,

這里我給大家做一個簡單的前端單點登陸的解決方案,

用到的就是postMessage跨域信息傳輸以及onstorage的監(jiān)聽。

本文用到的知識點 koa架設靜態(tài)資源服務、跨域、postMessage的用法、onstorage監(jiān)聽storage

第一步、架設兩個不同端口的服務

我們這里用koa2來搭建兩個服務到不同的端口,來模擬一下真正的工作中需要出現(xiàn)的跨域情況。

非常的簡單 主要用到 koa-static這個中間件
搭建起來也是非常容易的,如果大家想學node相關的知識 可以加我微信shouzi_1994 或者在博客下面留言你的聯(lián)系方式 這里就不多說廢話了 直接上代碼 視頻內會有詳細的搭建步驟

// localhost:4000const Koa = require('koa');const path = require('path')const static = require('koa-static')const app = new Koa();//設置靜態(tài)資源的路徑 const staticPath = './static'app.use(static(    path.join( __dirname,  staticPath)  ))  console.log("服務啟動在4000端口")app.listen(4000);// localhost:3000const Koa = require('koa');const path = require('path')const static = require('koa-static')const app = new Koa();//設置靜態(tài)資源的路徑 const staticPath = './static'app.use(static(    path.join( __dirname,  staticPath)  ))console.log("服務啟動在4000端口")app.listen(4000);

第二步、跨域通訊postMessage

我們首先來看一下 postMessage的API

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

otherWindow
其他窗口的一個引用,比如iframe的contentWindow屬性、執(zhí)行window.open返回的窗口對象、或者是命名過或數(shù)值索引的window.frames。

message
將要發(fā)送到其他 window的數(shù)據。它將會被結構化克隆算法序列化。這意味著你可以不受什么限制的將數(shù)據對象安全的傳送給目標窗口而無需自己序列化。[1]

targetOrigin
通過窗口的origin屬性來指定哪些窗口能接收到消息事件,其值可以是字符串""(表示無限制)或者一個URI。在發(fā)送消息的時候,如果目標窗口的協(xié)議、主機地址或端口這三者的任意一項不匹配targetOrigin提供的值,那么消息就不會被發(fā)送;只有三者完全匹配,消息才會被發(fā)送。這個機制用來控制消息可以發(fā)送到哪些窗口;例如,當用postMessage傳送密碼時,這個參數(shù)就顯得尤為重要,必須保證它的值與這條包含密碼的信息的預期接受者的origin屬性完全一致,來防止密碼被惡意的第三方截獲。如果你明確的知道消息應該發(fā)送到哪個窗口,那么請始終提供一個有確切值的targetOrigin,而不是。不提供確切的目標將導致數(shù)據泄露到任何對數(shù)據感興趣的惡意站點。

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

怎么樣是不是很容易理解,這里給大家中文化一下。

要傳輸?shù)哪莻€(父)子窗口.postMessage(傳輸?shù)膬热? 傳輸?shù)侥膫€地址, [權限是否轉移(一般不用)]);

提前說一下,要想跨域傳輸,必須是父子頁面,也就是說,是通過js Open的頁面,或者ifream嵌套的頁面

好了 我們開始來寫代碼

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>Document</title></head><body>        <!-- postMessage和iframe解決普通的跨域問題 -->    我是端口3000網站的內容    <button onclick="send()">發(fā)消息給兒子</button>        <iframe style="display:none" src="http://localhost:4000" frameborder="0"></iframe><script>        function send() {                 window.frames[0].postMessage({a:"1"},"http://localhost:4000"); // 觸發(fā)跨域子頁面的messag事件        }    window.addEventListener('message', function(event) {        console.info('兒子來信了', event);    }, false);</script></body></html>
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>Document</title></head><body>        <!-- postMessage和iframe解決普通的跨域問題 -->    我是端口4000網站的內容    <button onclick="send()">發(fā)消息給爸爸</button>        <iframe style="display:none" src="http://localhost:4000" frameborder="0"></iframe><script>       window.addEventListener("message",function(event){           console.log("爸爸來信了:", event)        },false)      function send() {        parent.postMessage({a:1}, 'http://localhost:3000'); //      }</script></body></html>

寫到這里我們已經實現(xiàn)了父子頁面的跨域通訊,但是這個通訊只發(fā)生在一個窗口內啊,并沒有達到我想要的效果,該怎么辦呢。

監(jiān)聽數(shù)值變化,做出及時反應

到這里大家需要思考,什么東西是瀏覽器上的所有同域名網站都能看到的呢?

沒錯,storage,我們只需要對這個進行監(jiān)聽就好了。

這里我們選擇監(jiān)聽 loacalStorage 現(xiàn)在我們對子頁面做一下改進

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>Document</title></head><body>        <!-- postMessage和iframe解決普通的跨域問題 -->    我是端口4000網站的內容    <button onclick="send()">發(fā)消息給爸爸</button>        <iframe style="display:none" src="http://localhost:4000" frameborder="0"></iframe><script>           window.addEventListener("message",function(event){           console.log("爸爸來信了:", event)           var data = JSON.stringify(event.data)           window.localStorage.setItem("data",data)        },false)        window.onstorage(function(st){            console.log(st.key,st.value)        })      function send() {        parent.postMessage({a:1}, 'http://localhost:3000'); //      }</script></body></html>

看,我們是不是到現(xiàn)在就能夠針對跨域傳輸?shù)膬热葑龀鲰憫四兀?/p>

思考

現(xiàn)在我們做到了兩個頁面的跨域通訊,那么三個到多個的跨域通訊怎么做呢?其實一個道理啦?,F(xiàn)在道理說給你了,寫法自己去體驗一下吧。

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


注:相關教程知識閱讀請移步到HTML教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
成人女性文胸| 这里只有精品丝袜| av激情成人网| 亚洲成人av一区二区三区| 色喇叭免费久久综合| 老司机凹凸av亚洲导航| 深夜福利日韩在线看| 亚洲a级黄色片| 成人一级免费视频| 99视频在线视频| 老司机午夜精品视频在线观看| 老司机性视频| 国产午夜在线观看| 欧美色综合网站| 巨骚激情综合| 欧美日韩综合不卡| av大大超碰在线| 日本视频网站在线观看| 青青草原国产在线| 亚洲色偷偷色噜噜狠狠99网| 99国产成人精品| 亚洲欧洲性图库| 国产无套粉嫩白浆在线2022年| 欧美顶级毛片在线播放| 丰满白嫩尤物一区二区| av中文字幕亚洲| av日韩中文字幕| 97精品视频在线播放| 日本色综合中文字幕| 国产极品模特精品一二| 久久精品国产亚洲aⅴ| 欧美肥臀大乳一区二区免费视频| 神马久久久久久久久久| 国产午夜精品久久久久| 成**人特级毛片www免费| 国产精品一区在线观看| 国产亚洲成aⅴ人片在线观看| 国产成人精品一区二区三区| 国产亚洲色婷婷久久99精品91| 99久久激情视频| 午夜老司机精品| 九色在线网站| 中文字幕资源网在线观看免费| 久久久久无码国产精品| 性欧美精品中出| 欧美福利视频在线| 97久精品国产片一区二区三区| 热久久视久久精品18亚洲精品| 欧美高清精品3d| 亚洲电影免费| 日韩一区自拍| 丁香婷婷成人| 亚洲欧洲99久久| 伊人久久精品一区二区三区| 久久久久久久久久久久久久久久av| 青青草原国产免费| 老司机在线永久免费观看| 午夜精品久久17c| 91免费精品国偷自产在线在线| 欧美亚洲日本国产| 国产一区二区在线免费| 超级黄的软件| 国产精品视频一区二区三区麻豆| 成人久久久精品乱码一区二区三区| 先锋影音在线资源站91| 导航艳情国产电影| 日韩色av导航| 国产精品v一区二区三区| 亚洲性猛交xxxxwww| 天天天天天天天操| 特黄视频在线观看| 国产乡下妇女做爰| 日本中文字幕第一页| 成人资源www网在线最新版| 日韩av网站大全| 9l视频自拍蝌蚪9l视频成人| 手机在线免费观看av| 中文有码在线| 欧美牲交a欧美牲交| 神马午夜在线观看| 亚洲中无吗在线| 黑人巨茎大战欧美白妇| 午夜dj在线观看高清视频完整版| 捆绑调教日本一区二区三区| 国产精品综合久久久久久| 欧美亚洲国产日韩| 黑人巨大狂躁日本妞在线观看| 爱爱视频网站免费| 成人福利网站在线观看| 亚洲一区美女视频在线观看免费| 一区二区三区四区亚洲| 欧美日韩一区二区三区免费| 国产免费av国片精品草莓男男| 777奇米888色狠狠俺也去| 欧美大片在线影院| 实拍女处破www免费看| 欧美人体视频| 99国产精品欲| 欧美性受xxxx狂喷水| 国产在线一区二区综合免费视频| av一区二区不卡| 黄色软件视频在线观看| 亚洲专区一二三| 激情不卡一区二区三区视频在线| 欧美资源在线| 亚洲精品视频在线观看视频| 国产欧美精品日韩| 很黄的网站在线观看| 国产精品99久久久久久大便| 麻豆9191精品国产| 亚洲青青久久| 香蕉久久久久久久| 玖玖玖免费嫩草在线影院一区| 国产一区二区不卡| 激情欧美丁香| 亚洲不卡av一区二区三区| 欧美日韩久久久久| gogogo影视剧免费观看在线观看| 影音先锋国产资源站| 精品欧美国产一区二区三区不卡| 成人教育av在线| 天堂在线视频免费| 成人精品一区二区三区中文字幕| 国产精品第一第二| 久久视频在线视频| 色欲一区二区三区精品a片| 国产成人精品一区二三区四区五区| 久久人体大胆视频| 日韩视频中文字幕| 中文字幕高清在线观看| 91美女在线观看| www中文字幕| 亚洲精品ady| 久久久综合香蕉尹人综合网| 91成人网在线| 亚洲天堂av高清| 欧美日韩精品久久久| 美洲天堂一区二卡三卡四卡视频| 国产无一区二区| www.久久久久爱免| 天堂tv亚洲tv日本tv欧美人tv| 国产一级黄色| 波多野结衣家庭教师| 日韩欧美国产中文字幕| 亚洲精品中文字幕在线播放| 亚洲欧美日韩不卡| 最近2019好看的中文字幕免费| 成人高潮成人免费观看| 最近中文字幕免费mv| 任我爽精品视频在线播放| 亚洲国产精品va在线看黑人动漫| 精品国内自产拍在线视频| 日韩av影片在线观看| 伊人网免费视频| 日韩 欧美 视频| 麻豆91精品视频| 久久综合成人精品亚洲另类欧美| 91高清视频免费| gogogo免费视频观看亚洲一| 久久夜色精品亚洲噜噜国产mv| 欧美日韩亚洲一区在线观看| 菁菁伊人国产精品| 日本精品黄色| 欧州一区二区三区| 一个人看的www视频免费在线观看| 中文字幕中文字幕99| 国产麻豆精品久久一二三| 成人xxx免费视频播放| aaa级精品久久久国产片| 亚洲一区二区三区激情| 成人在线免费看视频| 亚洲国产aⅴ精品一区二区三区| 伊人夜夜躁av伊人久久| 亚洲国产精品第一区二区| 亚洲一区三区电影在线观看| 国产成人亚洲精品无码h在线| 992tv成人国产福利在线| 国产精品流白浆视频| 国产精品97在线| 三级黄色在线视频| 免费一级欧美在线观看视频| 亚洲欧美精品一区二区| 麻豆成人久久精品二区三区红| 精品成人免费一区二区在线播放| 97夜夜澡人人双人人人喊| 熟年交尾五十路视频在线播放| youjizz欧美| 麻豆国产91在线播放| 国产熟女一区二区丰满| 18加网站在线| av片在线免费| 在线免费看av的网站| 操操操干干干| 亚洲天堂av电影| 麻豆视频在线观看| 毛片在线视频播放| 天天色天天综合网| 精品国产综合区久久久久久| 亚洲人成毛片在线播放女女| 九色91popny| 欧美18xxxxx| 亚洲福利在线播放| 免费中文字幕在线观看| 日本xxxxwwww| 欧美婷婷在线| 成人国产网站| 国内欧美日韩| 综合激情国产一区| 97色婷婷成人综合在线观看| 一区二区三区成人精品| 亚洲精品中文字幕乱码无线| 精品伦理精品一区| 国产大片aaa| 日本三级一区二区| 豆国产97在线 | 亚洲| 日韩二区三区四区| 日日噜噜噜夜夜爽爽狠狠视频| 亚洲国产精品99久久| 欧美极品aaaaabbbbb| 久久电影中文字幕| 国产精品一区牛牛影视| 偷拍精品精品一区二区三区| 精品国产乱码久久久久久牛牛| 成全电影播放在线观看国语| 99精品国产高清一区二区麻豆| 人人做人人爽人人爱| 国产欧美视频一区二区| 最新国产成人av网站网址麻豆| 国产精品三区四区| 精品一区二区av| 国产高清视频在线播放| 国产精品久久久久久久久久10秀| 欧美性极品xxxx做受| 一本一道综合狠狠老| 欧美成人综合在线| 成人免费小视频| 先锋影音在线资源站91| 久久久久久久久久久9不雅视频| 亚洲va欧美va人人爽午夜| 国产精品免费电影| 久久夜色精品国产噜噜av| 精品无码在线视频| 亚洲国产高清在线观看视频| 粗暴91大变态调教| 91亚洲精品丁香在线观看| 国产自产自拍视频在线观看| 奇米影视四色在线| 日本欧美黄色片| 国产无遮挡裸体免费视频| 男女羞羞网站| 97人人做人人爱| 37p粉嫩大胆色噜噜噜| 日韩你懂的电影在线观看| 黄网站app在线观看大全免费视频| 97在线观看免费视频| 在线免费视频一区| 国产在线精品一区二区夜色| 黄色成人羞羞视频| 天天操夜夜干| 91国语精品自产拍在线观看性色| 热久久美女精品天天吊色| 77导航福利在线| 一区二区日韩在线观看| 欧美激情免费看| 日韩视频在线观看一区| 羞羞色国产精品网站| 性欧美长视频免费观看不卡| 91麻豆高清视频| 日本道中文字幕| 96精品久久久久中文字幕| 真实原创一区二区影院| 最近2019中文字幕在线高清| 国产午夜一区二区| 欧美大交乱xxxxxbbb| 日韩欧美一二三| 在线观看日本一区| 精品一区二区三区毛片| 我不卡神马影院| 亚洲品质自拍| 精品成人一区二区三区免费视频| 日韩免费视频一区| 欧美性三三影院| 国产美女自慰在线观看| 一色桃子一区二区| 免费不卡中文字幕在线| 亚洲国产精品无码久久久| 国产精品一区在线观看乱码| 精品在线欧美视频| 亚洲最大av在线| 久久久免费网站| 欧美日韩一区二区三区免费| dj大片免费在线观看| 国产日产欧美一区二区三区| 欧美日韩另类综合| 国产爆初菊在线观看免费视频网站| 在线观看亚洲黄色| 久久久久久亚洲中文字幕无码| 99蜜桃在线观看免费视频网站| 1024在线看片你懂得| 国产盗摄女厕一区二区三区| 性欧美精品高清| 久久www免费人成精品| 少妇熟女视频一区二区三区| 污黄色在线观看| 日本亚洲一区二区| 国产女人18毛片水18精品| 国产精品久久91| 要久久电视剧全集免费| 国产精品美女一区二区三区| 国产日韩欧美精品综合| 亚洲欧洲在线观看av| 黄av在线播放| a级片国产精品自在拍在线播放| 国产视频在线播放| 日韩中文字幕在线观看| 精品久久国产老人久久综合| 欧美下载看逼逼| 国产在线观看av| 宅男网站在线免费观看| 女女色综合影院| 国产成人亚洲综合| 日本免费在线视频| 91亚洲精品丁香在线观看| 99国产精品自拍| 国产ts在线播放| 黑人巨大精品欧美一区二区三区| 伊人成人开心激情综合网| 亚洲夜晚福利在线观看|