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很重要。