如何在Google Chrome开发者工具中搜索范围变量?

dan*_*007 18 javascript google-chrome-devtools

我使用Google Chrome开发者工具在javascript函数中设置了断点.

我在函数的范围变量中寻找一个变量值为"Fred".如何在函数范围内的变量中搜索此值?

Dan*_*der 10

您需要将一个脚本添加到控制台,以便您可以实际执行搜索,因为默认情况下开发人员工具不允许这样做.这是你的功能(请参阅下面的我的要点评论以获得更新):

function scanScope(whatToScan, scanValue) {
	for (var key in whatToScan) {
		if (whatToScan[key] == scanValue) {
			console.log(key + ' = ' + whatToScan[key]); 		
		} else {
			if( (typeof whatToScan[key] === "object") && (key !== null) ) { 
				scanScope(whatToScan[key], scanValue);
			}
		}
	}
}
Run Code Online (Sandbox Code Playgroud)

将其复制并粘贴到控制台中,然后使用要搜索的范围和要搜索的值调用它. 当然,要小心你不要搜索太大的物体. 例如,如果您使用Angular进行编程,并遵循"始终有点"规则,则可以通过以下调用进行扫描:

scanScope($scope.model, 'Fred');
Run Code Online (Sandbox Code Playgroud)

  • 顺便说一下,我已经制作了这个脚本的增强版本(因为我喜欢并经常使用它,我自己)并将其作为一个要点发布:https://gist.github.com/DorkForce/34eb9a1ebf14cc5b0ba7 (4认同)

xan*_*ded 0

由于您已在 Chrome DevTools 中的特定行上设置了断点,因此该断点位于所述变量的范围/上下文内。当浏览器执行到达断点时,您将可以访问其范围和全局范围内的所有变量/函数。

导航到控制台选项卡并开始输入,控制台将自动完成范围内的变量。

有关 Chrome 开发者工具的更多信息,请访问:

https://developers.google.com/chrome-developer-tools/

  • 谢谢,我确实在函数内设置了断点,因此可以访问变量的范围。现在我如何搜索值为“Fred”的变量?该函数有 100 个局部变量。 (7认同)