Доступ к пользовательским переменным из консоли Google Chrome - PullRequest
5 голосов
/ 10 января 2011

В целях отладки возможно ли получить доступ к переменным usercript из консоли в Google Chrome?

Ответы [ 3 ]

2 голосов
/ 11 октября 2013

Предположим, у вас есть пользовательский скрипт 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:

  1. Определитьидентификатор пользователя.Вы можете увидеть это на странице расширений (chrome://extensions/):

    Getting script's ID

  2. Переключитесь в контекст скрипта, нажав наконтекстное меню в нижней части консоли:

    Switch to userscript scope

    Обратите внимание, что идентификатор (pfnbaeafniclcjhfkndoploalomdmgkc) совпадает с указанным на странице расширений.

  3. Теперь вы сразу сможете видеть и изменять переменную области окна (var2), но вы не можете видеть глобальный пользовательский скрипт (userscriptVar), потому что скрипт-инстанция давно закончилась и исчезла.:

    Accessing Script vars after script is done

  4. Чтобы получить доступ и изменить переменные usercript, пока скрипт еще активен, установите точку останова в скрипте и используйтеотладчик.См. этот ответ , чтобы узнать, как это сделать.

    (Нажмите, чтобы увеличить изображение)
    Userscript paused at a breakpoint

  5. Когда пользовательский скрипт приостановлен на подходящей точке останова, вы можете видеть, но не изменять глобальные значения, из консоли.

    (щелкните для увеличения изображения)
    Can't change from console

  6. Но вы можете изменить значение в отладчике:

    (щелкните для увеличения изображения)
    Setting the value

1 голос
/ 10 января 2011

гул да. Просто введите имя переменной и нажмите Enter для оценки (используйте dir(xxx) для объектов)

Примечание: переменная должна быть глобальная установлена ​​на unsafeWindow

0 голосов
/ 14 января 2014

Для меня сработало то, что я сделал переменную глобальной. * 1001 то есть *

var x = "Chairman Mao";  // x not accessible to chrome
    x = "Chairman Mao";  // X becomes accessible to chrome via inspector
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...