如何在Firebug中搜索整个JavaScript对象?

时间:2014-10-22 14:36:28

标签: javascript firefox firebug

我在Firefox中使用Firebug。我有一个巨大的JavaScript对象,它包含许多其他JavaScript对象,而这些对象又可以保存对象。我想找到一个可以在任何一个对象中的唯一值。但是,Firebug的搜索字段仅适用于 DOM 面板内可见的文本。在JavaScript对象列表中,您可以单击旁边的加号将其展开。但是,如果未展开对象,则搜索字段似乎不可见。

如何搜索当前未在Firebug DOM 面板中显示的项目?

1 个答案:

答案 0 :(得分:1)

目前,Firebug的DOM panel(Firebug 2.0.4)并不支持在嵌套对象中进行搜索。这是一个长期存在的问题,报告为issue 1545

你可以做些什么来规避这个问题,就是编写自己的搜索功能,它会返回你期望的结果。一个简单的例子是以下代码:

function searchValue(obj, value) {
  for (var prop in obj) {
    if (typeof obj[prop] === "object") {
      var result = searchValue(obj[prop], value);
      if (result !== '')
        return prop + "." + result;
    }

    if (obj[prop] === value)
      return prop + "." + obj[prop];
  }

  return '';
}

此函数对对象进行简单搜索,并返回保存第一次出现的值的属性的路径。例如。在定义为searchValue(test, "bar")的对象上调用test = {a: "foo", b: {c: {d: "bar"}}}会返回"b.c.d"请注意,此函数不会处理递归。