Доступ к переменным 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, время: 11:30. |