从Javascript控制台访问JSFIDLE中的变量?
我使用以下代码创建了一个:从Javascript控制台访问JSFIDLE中的变量?,javascript,firebug,google-chrome-devtools,jsfiddle,Javascript,Firebug,Google Chrome Devtools,Jsfiddle,我使用以下代码创建了一个: var x=10; 当我尝试在控制台中查看此内容时,会得到以下结果: > x ReferenceError: x is not defined 这很有意义,因为运行控制台需要Javascript。有什么方法可以让它工作吗?控制台就像它自己的闭包,其中this===window:您只能看到控制台中定义的变量(每个命令/脚本) 因此,有两种方法可以发布控制台中可见的数据: var x=5;console.log(x);//超出您的代码,而不是作为控制台命令 wi
var x=10;
当我尝试在控制台中查看此内容时,会得到以下结果:
> x
ReferenceError: x is not defined
这很有意义,因为运行控制台需要Javascript。有什么方法可以让它工作吗?控制台就像它自己的闭包,其中
this===window
:您只能看到控制台中定义的变量(每个命令/脚本)
因此,有两种方法可以发布控制台中可见的数据:
var x=5;console.log(x);//超出您的代码,而不是作为控制台命令
window.x=5;//现在x是全局的,所以在console中x可以得到5。
您可以使用调试器,而不是纯控制台命令。在firebug和chrome的开发工具中,您可以设置一个断点,刷新页面(在JSFIDLE中应该运行此操作),现在您可以在范围中看到变量的实际值。(您需要重新加载页面一次,将代码放入调试器,然后在下次重新加载时,您将在document.ready事件中获得断点。)如果使用Chrome或Chrome,请查看开发人员控制台的底部,其中会出现字符串
。单击它并选择result(fiddle.jshell.net)
。这将更改浏览器的当前范围,您可以访问所有全局变量。另外,如果还想访问var
变量,请记住将jsFiddle中的加载选项更改为no wrap
更新:2014.12.01
使用Firefox(34+)和新的Firefox开发者版,可以通过启用选择一个框架作为当前目标文档额外工具进入开发者工具,然后单击它并选择http://fiddle.jshell.net/_display/
我这样做了,但变量仍然未定义。我更新了我的答案@Casebash。如果使用JSFIDLE中的
onLoad
选项运行代码,控制台将无法访问var x
,因为代码将被包装在一个闭包中(附加到onLoad
事件的函数),并使其从控制台不可见。@Ragnarokkr谢谢,这非常有帮助@caspin对于超出范围的变量,您可以在代码中变量仍在范围内的位置设置断点,然后当遇到断点时,您可以从控制台访问变量,因为控制台位于断点暂停的位置。请将加载类型专门更改为无换行-底部
选项。