我一直在尝试将突出显示功能添加到 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 代表什么?他们可以将显示元素映射到页面中的目标元素吗?window.DebuggerView.WatchExpressions.getItemForElement
我从 Venkman尝试过,但它返回 null。这个源文件中是否有另一个函数可以提供调试器监视的目标元素?
理想情况下,我应该能够在调试上下文中“观察”诸如document.getElementsByTagName('a')
、 或局部变量之类的项目,并突出显示页面中的项目,例如 Chromium/Firebug。但是我不确定如何从 Firefox 扩展中添加此功能。
更新:
经过进一步的工作,似乎可以DebuggerView.StackFrames.evaluate
在断点处停止时使用运行代码,就像对chrome://browser/content/devtools/debugger-controller.js
手表所做的那样。不幸的是,当我在断点处停止时,我运行了这段代码,并且DebuggerView.StackFrames.evaluate
在[void] void
Venkman 中。这个评估命令是隐藏的还是私有的,还是没有初始化?