如何在任何鼠标按钮事件上触发操作?

时间:2014-02-25 09:25:07

标签: javascript mouseevent

为此,我实际上并没有编写任何程序,但我想了解它是如何在JS中实现的,以便对其进行对策。

我知道onclickonmousedownonmouseupondblclick。我使用此类规则阻止页面的事件(Privoxy;简单文本替换):

s@onclick=@noclick=@gi
s@onmousedown=@nomousedown=@gi
s@onmouseup=@nomouseup=@gi
s@ondblclick=@nodblclick=@gi

我知道这很粗糙,这不是重点。

然而页面仍然对鼠标事件作出反应,当我点击静态文本时,它给了我很多弹出窗口和popunders。

那么,Javascript中还有另一个鼠标按钮事件吗? JS可以应用哪些技巧来避免这4个过滤器?

2 个答案:

答案 0 :(得分:1)

除了在 HTML 中添加事件处理程序作为属性以及在 JavaScript 中添加 HTMLElements 的属性外,您还可以使用 JavaScript 使用HTMLElement.prototype.addEventListener将处理程序附加到元素,这允许您为同一事件附加许多处理程序。

这种附加处理程序的方式很可能是绕过当前块的方法,并且可能很难删除。


绕过它的一种方法可能是(这必须在你要防止的行之前执行)

HTMLElement.prototype.addEventListener = (function (listen) {
    return function (a) {
        if (a === 'click') // for example
            return;
        return listen.apply(this, arguments);
    };
}(HTMLElement.prototype.addEventListener));

答案 1 :(得分:0)

以下鼠标事件在JavaScript中:

mousedown ,用户按下此元素上的鼠标按钮

mouseup ,用户在此元素上释放鼠标按钮

点击,在此元素上检测到一个 mousedown 和一个 mouseup

dblclick

<强>鼠标移动

鼠标悬停和鼠标移动

更多参考:http://www.quirksmode.org/js/events_mouse.html