我正在尝试使用 firefox 的greasemonkey扩展来覆盖我访问的网站上的一些JavaScript 事件。
例如,我想在模糊事件绑定到窗口元素时显示一条消息,无论我访问什么页面。
我认为这很容易。但是要在每种情况下都使用它要困难得多,因为根据网站使用的库,JavaScript 事件似乎存储在不同的位置。
这是我在greasemonkey用户脚本中进行的测试:
window.onload = function(event) {
// Handle pure JS
if (window.onblur) {
console.log('There is a blur event on the window element of this page');
}
// Handle jQuery
if (window.jQuery) {
var jExpando = window[window.jQuery.expando];
if (jExpando.events.blur) {
console.log('There is a blur jQuery event on the window element of this page');
}
}
}
这适用于使用纯 JavaScript 或 jQuery 的每个页面,但我无法捕获其他库(如 Mootools、Prototype 等)的模糊事件侦听器......
因此,这是非常糟糕的代码,考虑到我必须自己处理所有现有的 JavaScript 库,而且我不知道该怎么做。
有没有办法让所有事件侦听器绑定到特定的 JavaScript 对象(无论用于附加它们的库),以便我可以覆盖其中的一些?