JSFiddle在哪里存储我的变量?

时间:2014-03-13 23:22:46

标签: javascript debugging google-chrome-devtools jsfiddle

介绍性评论:作为一项实验,我正在使用JSFiddle调试一些代码。我可以在debugger;窗口中添加alert();语句或显示内容。我的问题出在Chrome控制台上:我想用它来打印出变量值。

说明性示例:在JSFiddle上,我将以下代码放在JavaScript框中。

var sampleVar = "test value";

代码运行后,我似乎无法查看变量值。我可以在程序运行完成之前通过添加debugger;语句并在控制台上评估sampleVar来查看它们。 (如this (ridiculously simple) JSFiddlethis screenshot所示。)

进一步推断:但我希望能够打开完整的程序并探究它的变量。我有办法做到这一点吗?我尝试打开控制台并评估sampleVar,但它似乎在顶级范围内未定义。 (如this screenshot.

所示

重述问题 JSFiddle把变量放在哪里?我如何访问它们?


后记:很抱歉链接到imgur,我认为直接添加图片会分散注意力。

值得注意的比较:将调试JSFiddle的难度与调试JSBin的难易程度进行对比。如果我打开一个"控制台" JSBin中的框架我可以回想一下我在代码中声明的变量,没问题。

2 个答案:

答案 0 :(得分:4)

  

JSFiddle把我的变量放在哪里?我如何访问它们?

它把它放在你告诉它的地方。 JSFiddle默认将所有代码放在window.onload函数中,这意味着您使用var声明的所有内容都是该回调的本地代码。 (您当然可以在window显式设置属性)。这是such an example

此设置可以从左侧菜单更改 - 如果将其移至headbody,您可以从开发人员工具访问它们。此外,值得一提的是,如果在代码运行时调用调试器,即使它们处于闭包状态,您也可以访问这些变量。

答案 1 :(得分:0)

代码在不同域(fiddle.jsshell.net)上的iframe中进行评估。这样做是出于安全原因。

编辑:在Firebug中,您可以使用cd(document.querySelector('iframe').contentWindow);,在Chrome中,您可以使用过滤器图标旁边的下拉菜单切换帧。