Доступ к переменным javascript до загрузки страницы (chrome).
Как получить доступ к переменным javascript до загрузки страницы в хроме? И соответственно до того, как выполнятся любые <script> вставки на самой странице?
То есть, предположим код страницы index.html такой: Код:
<html><head> Нужно добавить before.js такого содержания: x=5; Как это сделать с помощью контент скрипта расширения? Исходный код страницы (сам файл) менять нельзя, - можно только с помощью расширения вмешаться. В инете есть советы типа воспользоваться document.head.appendChild(script); Но это работает только при "run_at":"document_end", когда уже поздно. А в случае "run_at":"document_start" никакого head и body еще нету. Как быть? P.S. Переформилировал свой предыдущий вопрос с другой темы, т.к. там нельзя изменить название темы, пришлось создать новую. |
Цитата:
|
Х.з. как в хроме, а в ff есть unsafeWindow, которому соответственно можно зафигарить глобальные переменные.
unsafeWindow.x = 5В хроме тож должно быть что-то такое. |
Aetae,
спасибо за подсказку. С этим ключевым словом гуглится намного легче, но решить проблему нормальным способом не удалось. Ранее существовало такое решение для контент скрипта (несмотря на то, что он выполняется в "песочнице" отдельно от страницы) : (function() { var unsafeWindow = (function() { var div = document.createElement('div'); div.setAttribute('onclick', 'return window;'); return div.onclick(); })(); unsafeWindow.x=5; })(); Однако, начиная с версии 27.0.1447.3 эту возможность прикрыли, хотя в 27.0.1438.7 (dev-m и stable) эта фича еще работала. Ссылка на объект window, конечно, возвращается, но только на объект window из песочницы, в которой крутится контент-скрипт. |
Часовой пояс GMT +3, время: 20:41. |