【问题标题】:Get a property listed in the browser's Event Listener tab programmatically以编程方式获取浏览器的事件侦听器选项卡中列出的属性
【发布时间】:2019-05-26 04:25:25
【问题描述】:

我想知道是否可以在“事件侦听器”选项卡中列出 HTML 元素的属性?

控制台命令

getEventListeners(window.document.activeElement) 

给出完整列表。

但是是否可以通过它的“属性路径”获取上面显示的属性_oRecord

在浏览器中单击鼠标右键允许我复制属性路径,即 [""0""].P._oRecord 在我的例子中。

使用getEventListeners(),我可以获取函数,同时我需要获取“[[Scopes]]”属性之一。

【问题讨论】:

  • [[Scope]] 是 Javascript 引擎的内部属性。它可能仅/专门由开发工具 UI 公开。它并不意味着可以通过 Javascript 本身访问。可以肯定的是:您希望通过控制台中的脚本以编程方式访问该属性;通过面板检查对您来说还不够吗?请澄清一下,您的文字有点模棱两可。 X/Y problem:为什么要通过控制台访问该属性,您想实现/解决什么?
  • 我需要分析的页面,显示一大排行,每行打开一个textarea。我正在尝试在用户单击该行时打开的文本区域与该行本身之间建立链接。
  • 我希望你想在两者之间建立“链接”(连接)只是为了调试而不是为了生产。请注意,getEventListeners() 只是 Chrome 开发者工具功能,页面代码不可用,其他浏览器工具可能根本不可用。如果调试:考虑这个提示:将事件侦听器附加到公共父元素并检查target 以了解事件对象中的实际元素,以免您管理数十个事件侦听器(在此站点或谷歌搜索“事件委托”) .

标签: javascript google-chrome event-listener


【解决方案1】:

[[Scopes]] 是 Javascript 引擎的 internal property。它只对开发者工具公开。

您无法通过 Javascript 以编程方式访问此属性。

尽管您可以做的是,手动将对象存储为全局变量并以编程方式对其进行检查:

(右击[[Scopes]]

假设它已存储为temp1,那么这将允许您以编程方式进一步检查范围信息:

Object.values(temp1).map((s) => s.object)

【讨论】:

  • 很抱歉听到这个。无论如何感谢您的尝试。
  • 可能有一个 Chrome 扩展程序可让您访问此信息。您甚至可以通过 Chrome 扩展程序访问这些属性。虽然我不确定这是否可能。这只是一个想法。
猜你喜欢
  • 2011-11-24
  • 1970-01-01
  • 1970-01-01
  • 2013-08-16
  • 2011-12-26
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多