【发布时间】:2023-03-24 03:28:01
【问题描述】:
我一直在尝试将突出显示功能添加到 Firefox DevTools 调试器中,因此它将突出显示元素,而不是仅显示 [HTMLAnchorElement] 或类似内容。我知道这是可能的,因为您可以将someElement.style.border='1px solid blue' 或类似设置为手表,它会突出显示元素。那么为什么不让它存储当前边框,并使用element.style.border='1px solid blue' 在鼠标悬停时显示它,并在鼠标悬停时恢复它呢?
在 Firefox devtools 中调试时,我注意到右侧监视面板中的元素具有带有变量名称的行,这些变量名称实际上被赋予了奇怪的 id,例如“46439”,在带有“document.getelementsbytagname('a')36 的父元素下“ ID。这些 id 代表什么?他们可以将显示元素映射到页面中的目标元素吗?我从 Venkman 尝试了window.DebuggerView.WatchExpressions.getItemForElement,但它返回 null。 this source file 中是否有另一个函数可以提供调试器监视的目标元素?
理想情况下,我应该能够“观察”诸如document.getElementsByTagName('a') 之类的项目,或调试上下文中的局部变量,并突出显示页面中的项目,例如 Chromium/Firebug。但是我不确定如何从 Firefox 扩展中添加此功能。
更新:
经过进一步的工作,似乎可以使用DebuggerView.StackFrames.evaluate 在断点处停止运行代码,就像chrome://browser/content/devtools/debugger-controller.js 对手表所做的那样。不幸的是,当我在断点处停止时运行这段代码,而 DebuggerView.StackFrames.evaluate 在 Venkman 中是 [void] void。这个评估命令是隐藏的还是私有的,还是没有初始化?
【问题讨论】:
-
你检查过 Firefox 25 (Firefox Nightly) 中的开发工具,这可能包含你想要的东西。我还强烈建议您使用 FireBug,因为它有很多有用的功能,也是您正在寻找的功能。
-
@TimVisee 谢谢,但我什至无法像上面截图中那样在 Nightly 中添加手表。您是说 robcee 答案中的荧光笔 api 可用,还是即将在 25 年可用?
-
@TimVisee 在即将发布的 Firefox 25 中该功能在哪里?
-
如果你愿意,你可以使用 alpha 版本,你应该试试 Firefox Nightly。确保你知道这个版本可能有点不稳定,我个人将它用作我的主要浏览器,但我没有太多问题。无论如何,您可以在此页面上找到下载:nightly.mozilla.org。一旦你下载并启动了 Nightly(你不能同时启动 nightly 和 firefox!),你必须使用 firefox 菜单,然后你会看到一个包含许多功能的开发者菜单。希望这会有所帮助!
-
我最近使用 Nightly 时没有看到检查对象的元素突出显示。你如何激活它?
标签: javascript debugging firefox-addon watch firefox-developer-tools