granded 发表于 2023-11-9 18:19:06

如何强制取消离开页面时的弹窗确认

我尝试了onbeforeload=null,但是有时有用有时候没有用!😫

cxxjackie 发表于 2023-11-9 18:19:07

// ==UserScript==
// @name         让我离开!!
// @description...
// @namespace    ...
// @author       ...
// @version      1.0
// @match      *://*/*
// @grant      none
// @run-at       document-start
// ==/UserScript==

(function() {
    'use strict';
    window.addEventListener('beforeunload', e => e.stopImmediatePropagation(), true);
    window.onbeforeunload = null;
    Object.defineProperty(window, 'onbeforeunload', {
      configurable: true,
      get: () => null
    });
})();
可能会造成误杀,最好自己改一下match。

granded 发表于 2023-11-9 18:19:30

系统不会保留所作的更改

李恒道 发表于 2023-11-9 18:32:25

可以针对confirm劫持试试

granded 发表于 2023-11-9 18:54:56

李恒道 发表于 2023-11-9 18:32
可以针对confirm劫持试试

萌新不是很懂劫持{:4_88:}

李恒道 发表于 2023-11-9 19:04:49

granded 发表于 2023-11-9 18:54
萌新不是很懂劫持

window.confirm=()=>{}

granded 发表于 2023-11-10 19:47:15

https://pic.imgdb.cn/item/654e181fc458853aef37f7da.jpg

granded 发表于 2023-11-10 19:48:16

李恒道 发表于 2023-11-9 19:04
window.confirm=()=>{}

我试了大佬的代码,但是如上图所示,在不同的层级iframe使用confirm依然会弹出窗口,我人傻了

granded 发表于 2023-11-10 19:51:10

李恒道 发表于 2023-11-9 19:04
window.confirm=()=>{}

而且就算我在每个层级都把confirm改掉,用window.close()有时候还是会弹出离开页面提醒。我稍微看了看页面本身是没有重载confirm方法的,这就是浏览器自己的机制

李恒道 发表于 2023-11-10 20:19:18

granded 发表于 2023-11-10 19:51
而且就算我在每个层级都把confirm改掉,用window.close()有时候还是会弹出离开页面提醒。我稍微看了看页 ...
油猴是可以匹配作用域和match的
页: [1] 2
查看完整版本: 如何强制取消离开页面时的弹窗确认