如何列出我在Chrome DevTools中创建的所有全局变量?

时间:2016-09-01 19:40:02

标签: javascript google-chrome-devtools

在典型的浏览器环境中,有一大堆全局变量可以开始使用,并且通常在您可能加载的任何Web应用程序中更多。当我从devtools的会话中进行跟踪时,我想列出我自己的所有变量,以便快速查看我已经发现的内容以便恢复,而不是试图从窗口和命令行历史中将它拼凑在一起,理想情况下没有来自页面或浏览器对象模型。

(如果您想要所有全局变量,而不仅仅是您在devtools中创建的那些there's a Q&A for that here。)

1 个答案:

答案 0 :(得分:1)

如果页面没有动态地将新标识符泄漏到全局范围,则此hack会列出在window标识符之后创建的所有标识符,这似乎非常适合此目的。 myids()只列出他们的名字,而myvars()将他们收集到您可以检查的对象中,以便在上下文中一起查看它们:

function myids() {
  function notUs(i) { return i !== 'myids' && i !== 'myvars'; }
  var ids = Object.keys(window);
  return ids.slice(ids.indexOf('window') + 1).filter(notUs);
}

function myvars() {
  function gather(a, i) { a[i] = window[i]; return a; }
  return myids().reduce(gather, {});
}

这不是完美的,但总比没有好,它应该只有误报,没有假阴性。