Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.05.2013, 22:23
Аватар для zOdmin
Аспирант
Отправить личное сообщение для zOdmin Посмотреть профиль Найти все сообщения от zOdmin
 
Регистрация: 05.03.2012
Сообщений: 62

Доступ к переменным javascript до загрузки страницы (chrome).
Как получить доступ к переменным javascript до загрузки страницы в хроме? И соответственно до того, как выполнятся любые <script> вставки на самой странице?

То есть, предположим код страницы index.html такой:
Код:
<html><head>
<script>
console.log(x); //должно быть 5 при успешном выполнении before.js
</script> </head></html>

Нужно добавить before.js такого содержания:
x=5;

Как это сделать с помощью контент скрипта расширения? Исходный код страницы (сам файл) менять нельзя, - можно только с помощью расширения вмешаться.

В инете есть советы типа воспользоваться document.head.appendChild(script); Но это работает только при "run_at":"document_end", когда уже поздно. А в случае "run_at":"document_start" никакого head и body еще нету. Как быть?

P.S. Переформилировал свой предыдущий вопрос с другой темы, т.к. там нельзя изменить название темы, пришлось создать новую.

Последний раз редактировалось zOdmin, 27.05.2013 в 08:14.
Ответить с цитированием
  #2 (permalink)  
Старый 24.05.2013, 09:12
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,223

Сообщение от zOdmin
Как получить доступ к переменным javascript до загрузки страницы в хроме? И соответственно до того, как выполнятся любые <script> вставки на самой странице?
Если ничего не загружено - так и переменных нет.
Ответить с цитированием
  #3 (permalink)  
Старый 24.05.2013, 11:20
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

Х.з. как в хроме, а в ff есть unsafeWindow, которому соответственно можно зафигарить глобальные переменные.
unsafeWindow.x = 5
В хроме тож должно быть что-то такое.
__________________
29375, 35
Ответить с цитированием
  #4 (permalink)  
Старый 27.05.2013, 08:04
Аватар для zOdmin
Аспирант
Отправить личное сообщение для zOdmin Посмотреть профиль Найти все сообщения от zOdmin
 
Регистрация: 05.03.2012
Сообщений: 62

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 из песочницы, в которой крутится контент-скрипт.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
userJS доступ к переменным страницы (Chrome) DragorWW Opera, Safari и др. 2 13.07.2011 15:33
Chrome devTools и просмотр кода страницы выдают разное содержание T-Mark Общие вопросы Javascript 6 24.03.2011 23:03
Порядок загрузки страницы и javascript prog90 Events/DOM/Window 9 18.12.2010 21:42
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34