Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   Document.write и popup.js (https://javascript.ru/forum/css-html-firefox-mizilla/73761-document-write-i-popup-js.html)

jvscrptr 12.05.2018 20:25

Document.write и popup.js
 
Здравствуйте. Решил ознакомиться с написанием расширений и нашел пример на сайте https://developer.mozilla.org/en-US/...d_WebExtension. И столкнулся с непонятным для меня поведением. В примере есть popup.html, который запускает скрипт. В нем есть строка
browser.tabs.executeScript({file: "/content_scripts/beastify.js"})
.then(listenForClicks)
.catch(reportExecuteScriptError);
, которая вызывает функцию listenForClicks. Ради эксперимента я написал в ней document.write, но это не работает, расширение будто подвисает. При этом, если написать document.write просто в начале скрипта, то это сработает. Если же в listenForClicks присвоить innerHTML какой-то строке, то это тоже работает. Собственно вопрос. Почему работает innerHTML, но не работает document.write и почему вне функции document.write работает? Где можно про это почитать?

рони 12.05.2018 20:46

jvscrptr,
Цитата:

Технически, вызвать document.write можно в любое время, однако, когда HTML загрузился, и браузер полностью построил DOM, документ становится «закрытым». Попытка дописать что-то в закрытый документ открывает его заново. При этом все текущее содержимое удаляется.
https://learn.javascript.ru/document-write


Часовой пояс GMT +3, время: 21:18.