Подтвердить что ты не робот

Доступ к переменным в jsFiddle из консоли Javascript?

Я создал fiddle со следующим кодом:

var x=10;

Когда я пытаюсь просмотреть это в консоли, я получаю следующее:

> x
ReferenceError: x is not defined

Имеет смысл, так как Javascript запускает консоль. Есть ли способ заставить это работать?

4b9b3361

Ответ 1

Если вы используете Chrome или Chromium, посмотрите на нижнюю часть консоли разработчика, где появится строка <top frame>. Нажмите на него и выберите result(fiddle.jshell.net). Это изменит текущую область действия браузера, и вы сможете получить доступ ко всем глобальным переменным. Кроме того, не забудьте изменить параметр загрузки в jsFiddle на no wrap, если вы хотите также получить доступ к переменным var.

Screenshot Chrome

ОБНОВЛЕНИЕ: 2014.12.01

С Firefox (34+) и новым выпуском Firefox Developer Edition можно сделать то же самое, включив в инструменты разработчика Выбрать кадр в качестве целевого документа, а затем нажмите и выберите http://fiddle.jshell.net/_display/.

Screenshot Firefox

Ответ 2

Консоль похожа на собственное закрытие, где this === window: вы видите только vars, определенные на вашей консоли (за команду /script).

Таким образом, у вас есть два способа публикации данных, видимых в консоли:

  • var x = 5; console.log(x); // out of your code, not as console command
  • window.x = 5; // now x is global, so in console you get 5 for x.

Вместо чистых консольных команд вы можете использовать отладчик. В firebug, а также в инструментах chrome dev вы можете установить точку останова, обновить свою страницу (в jsFiddle должен выполнить Run), и теперь вы можете увидеть фактические значения ваших переменных в области. (Вам нужно перезагрузить страницу один раз, чтобы получить код в отладчик, а затем перезагрузить вы получите точки останова в событии document.ready.)