如何使用用户脚本完全禁用所有退出警告/确认消息?

Pat*_*lán 5 javascript jquery google-chrome userscripts tampermonkey

我正在隔离环境中使用chrome浏览恶意网站,以分析其数据以创建黑名单。用户脚本和浏览器扩展完全自动执行此过程。

问题在于某些站点能够在beforeunloadunload(我将其称为events)上显示退出对话框。

我已经覆盖了这些events,但是当站点再次覆盖我的覆盖时,整个过程将停止。我的意思是,他们可以events通过AJAX调用,模糊脚本,评估等来重新定义。

有什么办法可以摆脱这些消息,或者保护我的覆盖?也许unsafeWindow可以解决这个问题,但是我会避免在这种讨厌的环境中使用它。

编辑 -当前,我在用户脚本中使用以下代码:

location.href = "javascript:(" + function() {
    window.onbeforeunload = null;
    window.onunload = null;
} + ")()";

setInterval(function(){
    location.href = "javascript:(" + function() {
        window.onbeforeunload = null;
        window.onunload = null;
    } + ")()";
}, 3000);
Run Code Online (Sandbox Code Playgroud)

lea*_*eaf 1

尝试Object.defineProperty

Object.defineProperty(window, 'onunload', { 
    value: null,
    configurable: false
});

window.onunload = 1;

window.onunload;
// null
Run Code Online (Sandbox Code Playgroud)

configurable设置为 false 意味着该属性无法更改。