В целях отладки возможно ли получить доступ к переменным usercript из консоли в Google Chrome?
Предположим, у вас есть пользовательский скрипт Chrome с этим кодом:
var userscriptVar = "I'm a global variable, userscript context."; window.var2 = "I'm a window.scope variable, userscript context."; console.log ("Hello from the userscript.");
Для доступа к этим переменным usercript:
Определитьидентификатор пользователя.Вы можете увидеть это на странице расширений (chrome://extensions/):
chrome://extensions/
Переключитесь в контекст скрипта, нажав наконтекстное меню в нижней части консоли:
Обратите внимание, что идентификатор (pfnbaeafniclcjhfkndoploalomdmgkc) совпадает с указанным на странице расширений.
pfnbaeafniclcjhfkndoploalomdmgkc
Теперь вы сразу сможете видеть и изменять переменную области окна (var2), но вы не можете видеть глобальный пользовательский скрипт (userscriptVar), потому что скрипт-инстанция давно закончилась и исчезла.:
var2
userscriptVar
Чтобы получить доступ и изменить переменные usercript, пока скрипт еще активен, установите точку останова в скрипте и используйтеотладчик.См. этот ответ , чтобы узнать, как это сделать.
(Нажмите, чтобы увеличить изображение)
Когда пользовательский скрипт приостановлен на подходящей точке останова, вы можете видеть, но не изменять глобальные значения, из консоли.
(щелкните для увеличения изображения)
Но вы можете изменить значение в отладчике:
гул да. Просто введите имя переменной и нажмите Enter для оценки (используйте dir(xxx) для объектов)
dir(xxx)
Примечание: переменная должна быть глобальная установлена на unsafeWindow
unsafeWindow
Для меня сработало то, что я сделал переменную глобальной. * 1001 то есть *
var x = "Chairman Mao"; // x not accessible to chrome x = "Chairman Mao"; // X becomes accessible to chrome via inspector