我想将代码注入(inject)多个页面,以处理文档中特定元素的点击。 我通过 jQuery 成功做到了这一点。
问题是 jQuery 并非在所有页面上都可用。所以它只有一半的时间有效。我想查看href
每个 <a>
的属性我点击的。有人知道如何做到这一点吗?
最佳答案
您想要向文档添加一个事件监听器,这实际上是 jQuery 为您所做的事情。
查看有关添加事件监听器的 MDN 文档:
https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener
你的结果应该是这样的:
document.addEventListener('click', yourFunction, false);
这适用于 IE9+ 和所有其他浏览器。要支持 IE8 及以下版本,请改用 AttachEvent:
if (document.addEventListener) {
document.addEventListener('click', yourFunction, false);
}
else if (document.attachEvent) {
document.attachEvent('click', yourFunction, false);
}
您的函数现在将传递一个事件对象,该对象将具有一个名为“target”的属性,即被单击的节点。您也可以在 MDN 上阅读更多相关内容:
https://developer.mozilla.org/en-US/docs/DOM/event
同样,这仅适用于 IE9+ 和标准浏览器。在 IE7 和 IE8 中,事件对象是 window 对象的一个属性...但如果您在 google 上进行的调查没有找到一些结果,那么这就是另一个问题的主题。
这基本上就是 jQuery 在幕后所做的事情。我建议阅读 jQuery 的源代码可以教你很多像这样的技巧。
关于javascript - 通过 javascript 拦截文档中的每次点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11885357/