<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      前端如何使得兩個項目之間通信,window.open + postMessage

      一、背景

      由于公司內部需求不斷加大,一個項目無法滿足,多個項目直接需滿足互相通信,則需要解決跨域傳遞消息的問題

       

      二、兩個項目之間如何通信,如何解決解決跨域傳遞消息

      1. A.html ( https://www.a.com )

      <div @click="goDetail('參數id')">傳遞信息</div>
      <script>
      getMessage()
      let timeOfmsg = null
      function getMessage() {
          // 接收消息
          window.addEventListener('message', (e) => {
              console.log('no 接收到數據')
              if (e.data === 'getMsg') {
                  // @ts-ignore
                  console.log('接收到數據')
                  clearInterval(timeOfmsg)
              }
          })
      }
      
      // 跳轉到畫板編輯頁面
      function goDetail(id) {
          let url = 'https://www.b.com'
          // 打開畫布
          const targetWindow = window.open(`${url}?id=${id}`, '_blank')
          // 發送消息
          timeOfmsg.value = setInterval(() => {
              console.log('已發送消息')
              targetWindow.postMessage(localStorage.getItem('TOKEN'), url)
          }, 1000)
      }
      </script>
      

        

      2. B.html ( https://www.b.com )

      <script>  
      window.addEventListener(
          'message',
          (event) => {
          // 判斷接收信息的來源是否來自于 https://www.a.com if (event.origin != 'https://www.a.com') return; // 將接收到的數據存儲到本地 localStorage.setItem('TOKEN', event.data); // 返回消息,告知已收到數據 event.source.postMessage('getMsg', event.origin); }, false ); </script>

        

       三、坑點

      1. onload (失敗)

      window.open('xxx').onload = () => {
      	window.postMessage(message, targetOrigin, [transfer]);
      }
      

      2. setTimeout (失敗,由于B網站不一定什么時候加載完成)

      setTimeout(() => window.postMessage(this.userSession, targetUrl), 3000);
      

      3. setInterval(成功,A網站定時器不斷發送消息,當B網站接收到信息后,向A網站回復消息為已收到,關閉A網站的定時器)

      let timeOfmsg = setInterval(() => {
            winopen.postMessage(this.userSession, targetUrl);
      }, 3000);
      

        

       

      posted @ 2023-10-13 13:58  小短腿奔跑吧  閱讀(521)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产免费午夜福利在线播放 | 亚洲国产成人无码电影| 欧美嫩交一区二区三区| 欧美野外伦姧在线观看| 国产精品久久久久影院老司| 自偷自拍亚洲综合精品| 变态另类视频一区二区三区| 99久久精品久久久久久婷婷| 日本国产精品第一页久久| 亚洲精品国产综合麻豆久久99| 亚洲高潮喷水无码AV电影| 连山| 欧美亚洲精品中文字幕乱码| 亚洲综合区激情国产精品| 亚洲精品亚洲人成人网| 你拍自拍亚洲一区二区三区 | 亚洲中文字幕成人无码| 国产成人黄色自拍小视频| 中文字幕日韩人妻一区| 国产自产av一区二区三区性色| 亚洲 成人 无码 在线观看| 蜜臀av一区二区三区在线| 无码中文字幕人妻在线一区| 国产精品护士| 成人免费乱码大片a毛片| 精品国产免费一区二区三区香蕉| 极品尤物被啪到呻吟喷水| 99在线精品国自产拍中文字幕 | 国产精品视频一区二区三区无码| 四虎库影成人在线播放| 国产乱子伦无套一区二区三区| 人人妻人人澡人人爽曰本| 无套内射视频囯产| 伊在人间香蕉最新视频| 99久久亚洲综合精品成人网| 精品无码成人片一区二区| 天堂网在线.www天堂在线资源| 黑人强伦姧人妻久久| 国产麻豆剧果冻传媒一区| 日喀则市| 丁香婷婷综合激情五月色 |