Как установить точку останова при закрытии окна или предотвратить закрытие окна инструментов разработчика?

Я открыл Инструменты разработчика в отдельном окне для всплывающего окна FireFox. Проблема в том, что это всплывающее окно автоматически закрывается JavaScript после отправки формы, и я не могу отключить сам JavaScript, потому что для отправки формы ему нужен JavaScript.

Я искал способ отключить автоматическое закрытие инструментов разработчика при закрытии окна и нашел это, но это было для Chrome. Ввод window.addEventListener('unload', function() { debugger; }) в консоли не сработал. Я не смог найти Developer tools -> "Sources" tab -> Event Listener Breakpoints -> Window -> close или Event Listener Breakpoints -> Load -> unload. На панели Event Listener Breakpoints нет ни close, ни unload (я ввел их в "Фильтровать по типу события").

Как я могу предотвратить закрытие отдельного окна инструментов разработчика?


person Damn Vegetables    schedule 13.01.2020    source источник


Ответы (3)


События unload и beforeunload явно удалены из списка точки останова прослушивателя событий в Firefox 69 из-за возникновения ошибок на панели отладчика. См. https://bugzil.la/1569775 для получения дополнительной информации.

Таким образом, кажется, что в настоящее время (начиная с Firefox 72) нет способа остановить выполнение скрипта для этих событий, и вам нужно подождать, пока вышеупомянутая ошибка не будет исправлена.

person Sebastian Zartner    schedule 13.01.2020

Добавление прослушивателя событий

  • Load
    • load

в отладчике позволил мне оставить всплывающее окно OAuth открытым перед закрытием.

person almereyda    schedule 25.05.2020
comment
Это работает только в том случае, если вызов javascript перенаправляет текущее окно afaik. Когда скрипт фактически закрывает всю вкладку, это не работает. - person mvreijn; 17.09.2020

Я много искал эту проблему. Многие советы не работают. Решение, которое действительно сработало, было представлено здесь.

Это включает использование about:config для установки следующих значений:

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

После этого всплывающее окно откроется в том же окне. Затем скрипт не может закрыть окно, так как он не создатель.

person mvreijn    schedule 17.09.2020
comment
На случай, если мы забудем значения по умолчанию: browser.link.open_newwindow 3 browser.link.open_newwindow.restriction 2 browser.link.open_newwindow.override.external -1 - person Dmitry Shvedov; 12.03.2021
comment
Также не работало в Firefox 86 - успешно открывалось и закрывалось всплывающее окно. - person Dmitry Shvedov; 12.03.2021
comment
Только что проверил это в FF 87 на MacOS, и это сработало. - person mvreijn; 14.04.2021