为此,我实际上并没有编写任何程序,但我想了解它是如何在JS中实现的,以便对其进行对策。
我知道onclick
,onmousedown
,onmouseup
和ondblclick
。我使用此类规则
s@onclick=@noclick=@gi
s@onmousedown=@nomousedown=@gi
s@onmouseup=@nomouseup=@gi
s@ondblclick=@nodblclick=@gi
我知道这很粗糙,这不是重点。
然而页面仍然对鼠标事件作出反应,当我点击静态文本时,它给了我很多弹出窗口和popunders。
那么,Javascript中还有另一个鼠标按钮事件吗? JS可以应用哪些技巧来避免这4个过滤器?
答案 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
<强>鼠标移动强>
鼠标悬停和鼠标移动