【发布时间】:2011-03-14 17:17:26
【问题描述】:
我正在编写一个 Chrome 扩展程序来列出每个事件处理程序的源代码,这些事件处理程序附加到<a/> 标记,当您滚动它时。
目前,我已经打印出 href 属性 - $(this).attr("href") - 这很好用。源代码在github上http://github.com/grantyb/Google-Chrome-Link-URL-Extension。
当我扩展它以访问事件处理程序时,$(this).data("events") returns null。我确定我的<a/> 标签有一个 click() 处理程序,因为当我在我的网页中输出$("a").data("events") 时,它会正确列出处理程序。
似乎 jQuery 的 data() 方法正在检查沙盒数据,所以我无法从我的扩展中访问它。这是有道理的,因为我猜它存储在 jQuery 全局变量中,这显然是与位于我的扩展中的 jQuery 全局变量不同的变量。
是否有另一种方法可以访问 DOM 中对象的事件处理程序列表。事件处理程序甚至存储在 DOM 中吗?
【问题讨论】:
标签: javascript dom google-chrome-extension dom-events sandbox