diff --git a/pages/addEventListener_hook.coffee b/pages/addEventListener_hook.coffee index ae19689d1..f0134e9ba 100644 --- a/pages/addEventListener_hook.coffee +++ b/pages/addEventListener_hook.coffee @@ -6,7 +6,15 @@ _addEventListener = Element::addEventListener Element::addEventListener = (type, listener, useCapture) -> if type == "click" unless @hasAttribute "vimium-has-onclick-listener" - @setAttribute "vimium-has-onclick-listener", "" + skipCounter = 0 + if @hasAttribute "vimium-skip-onclick-listener" + skipCounter = parseInt @getAttribute("vimium-skip-onclick-listener") + + if skipCounter is 0 + @setAttribute "vimium-has-onclick-listener", "" + else + @setAttribute "vimium-skip-onclick-listener", skipCounter - 1 + _addEventListener.apply this, arguments if window.event? diff --git a/pages/jQuery_delegatedEvents_hook.coffee b/pages/jQuery_delegatedEvents_hook.coffee index 2166bacab..84e607380 100644 --- a/pages/jQuery_delegatedEvents_hook.coffee +++ b/pages/jQuery_delegatedEvents_hook.coffee @@ -18,6 +18,10 @@ Object.defineProperty window, "jQuery", if selectors.indexOf("#{sep}#{selector}#{sep}") < 0 element.setAttribute attrKey, selectors + selector + sep + # jQuery will use addEventListener, but we don't want to hook this particular call. + skipCounter = parseInt element.getAttribute("vimium-skip-onclick-listener") || "0" + element.setAttribute "vimium-skip-onclick-listener", skipCounter + 1 + return on_.apply @, arguments return jQuery