当页面导航到单页应用中的其他页面时,如何删除eventlistener
?
我在重新访问该页面时遇到此问题,而不是在调用eventlistener
时
if (window.addEventListener) {
window.addEventListener("message", listenMessage, false);
// console.log("false");
} else {
window.attachEvent("onmessage", listenMessage);
//console.log("true");
}
var listenMessage = function(msg) {
/**/
}
答案 0 :(得分:1)
使用removeEventListener删除事件侦听器。
window.removeEventListener("message", listenMessage, false);
在执行attachEvent的情况下执行detachEvent
答案 1 :(得分:0)
window.removeEventListener("onmessage", listenMessage);
window.detachEvent("onmessage", listenerMessage); // For IE
有关更多信息,请阅读文档:
https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener
https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/detachEvent
答案 2 :(得分:0)
我认为你应该使用布局页面,你的第一页和其他页面应该基于这个布局页面。 之后,您可以描述全局变量 在导航之前,您应该更改此变量的值。 检查变量的值并使用该方法:
document.getElementById("Your_Element_Id").removeEventListener("Your_Listener", your Function);