我有一个onbeforeunload事件处理程序附加到页面,它在每次页面重新加载/重定向时执行。
window.onbeforeunload = function() {
console.log("do something");}
我不希望这个脚本在我的测试期间运行。我想在我自己的测试环境中禁用它。
有什么方法可以解除这个onbeforeunload事件的绑定吗?我使用的是以jQuery为框架的JavaScript,所以用jQuery编写的答案会更好。
发布于 2011-06-09 13:22:14
在javascript中,函数可以被覆盖。您可以简单地为其分配一个新的用途:
window.onbeforeunload = function () {
// blank function do nothing
}
这将完全覆盖现有版本的window.onbeforeunload
。
注意:为什么不首先删除设置此函数的代码行呢?或者,如果不能,则必须在定义此空白函数后设置它,以确保它不会再次被覆盖
发布于 2016-12-20 23:20:01
与这个问题没有直接关系,但可能会对某些人有所帮助。这是我在Angular 1.x和TypeScript中使用的:
this.$window.onbeforeunload = () => undefined;
发布于 2019-12-11 22:18:06
要添加:
function f_beforeunload(e) {console.log("do something");}
window.addEventListener("beforeunload", f_beforeunload);
要删除,请执行以下操作:
window.removeEventListener("beforeunload", f_beforeunload);
https://stackoverflow.com/questions/6275983
复制相似问题