如何在 window 上设置断点关闭或阻止开发者工具 window 关闭?

How to set breakpoint on window close or prevent the Developer Tools window from closing?

我在单独的 window 上为 FireFox 的弹出窗口 window 打开了开发者工具。问题是弹出窗口 window 在表单提交后由 JavaScript 自动关闭,我无法禁用 JavaScript 本身,因为它需要 JavaScript 来提交表单。

我搜索了一种方法来禁用在 window 关闭时自动关闭开发人员工具,我找到了 this,但它适用于 Chrome。在控制台上键入 window.addEventListener('unload', function() { debugger; }) 无效。我找不到 Developer tools -> "Sources" tab -> Event Listener Breakpoints -> Window -> closeEvent Listener Breakpoints -> Load -> unload。 Event Listener Breakpoints 面板既没有 close 也没有 unload(我在 "Filter by event type" 中输入了它们)。

如何防止开发者工具的单独 window 关闭?

unload and beforeunload events obviously got removed from the list of event listener breakpoints in Firefox 69 due to causing bugs within the Debugger panel. See https://bugzil.la/1569775了解更多信息。

所以目前(从 Firefox 72 开始)似乎没有办法停止这些事件的脚本执行,您必须等到上述错误被修复。

添加事件侦听器

  • Load
    • load

在调试器中允许我在关闭前保持 OAuth 弹出窗口打开。

我为这个问题搜索了很多。许多提示不起作用。 提出了 有效的解决方案 here

这涉及使用 about:config 设置以下值:

browser.link.open_newwindow                      1
browser.link.open_newwindow.restriction          0
browser.link.open_newwindow.override.external    3

此后,弹出窗口将在同一 window 中打开。然后,脚本无法关闭 window,因为它不是创建者。