【常見坑】postMessage傳遞到iframe 第一次無效


window.postMessage() 方法可以安全地實現跨源通信。

API訪問地址:https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage

最近有個需求,在父window 點擊樹節點信息的時候,把信息傳遞到iframe 中,第一次iframe中獲取父的信息獲取不到,每次點擊節點的時候,iframe是能獲取到的。就想到可能是window加載的問題,果然,需要iframe的window onload的時候再發送才能接收到。

代碼如下:

const iframe = document.getElementById('test')
      iframe.onload = function (e) {
        iframe.contentWindow.postMessage({
          type: 'tree',
          value: JSON.stringify(message)
        }, '*')
      }

以上iframe.onload很重要。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM