如何设置首先触发的事件?

时间:2016-11-26 18:19:43

标签: javascript html event-handling tampermonkey dom-events

我想通过Tampermonkey(一个可以注入用户脚本的浏览器插件)将javascript代码注入网站

我想注射:

function temp() {...}
window.addEventListener("beforeunload", temp);

该网站可能已经

window.onbeforeunload = function() {...}
window.addEventListener("beforeunload", otherFunction);

...等,也就是说,窗口对象已经有了一些事件,我甚至不知道它们的函数名是什么,而我的“temp”函数最后会附加在窗口对象上

但我想在窗口关闭后首先触发临时功能

这可能吗?谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

添加此jquery插件:

(function ($) {
    $.fn.bindFirst = function(name, fn) {
       this.on(name, fn);
       this.each(function() {
          var handlers = $._data(this, 'events')[name.split('.')[0]];
          var handler = handlers.pop();
          handlers.splice(0, 0, handler);
       });
    };
})(jQuery);

之后使用如下:

window.bindFirst("beforeunload", temp);