我有一些代碼使用.postMessage()
與iframe進行通信,這意味着它需要在message
上添加一個偵聽器以接收來自iframe的通信。我使用的是常用的代碼爲:是否window.addEventListener('message')覆蓋其他偵聽器?
window.addEventListener('message', processMessage, false);
這個代碼在客戶端的頁面上有一堆其他的東西上運行:分析,社交按鈕,等等,等等,我注意到,當我添加了一個console.log
到processMessage
函數調試來自iframe的通信,它從第三方插件獲取大量其他流量,這些插件也使用.postMessage
。
忽略它們不是問題,因爲我正在尋找來自iframe的非常特定的消息,但我想確保不會覆蓋任何聽衆應該從FB腳本中獲取這些消息的內容,以及等等。我之前遇到過多個window.onresize
事件會覆蓋另一個事件。這是消息的事件偵聽器的問題嗎?
具體使用'addEventListener'不會覆蓋任何偵聽器。關於你的「過濾」,看看「postMessage」的MDN文檔 - 有一種過濾方法:https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage – Ian
你可以找到綁定事件處理程序的所有方法的一個很好的解釋,以及它們在這裏的區別:http://www.quirksmode.org/js/introevents.html。 –