我想检测有人单击div的时间(本质上是想知道用户何时与我网站上的一段文字进行交互,无论是通过选择一些文字还是单击一个链接),但是我不想干扰用户的行为。

如果我在div上放置onmousedown或onclick事件,它最终会破坏选择,链接等。是否有任何方法可以捕获这些事件而不会造成任何干扰?

最佳答案

只要 return false;,onmousedown或onclick都不会干扰任何内容。

你可以这样做:

document.getElementById("spy-on-me").onmousedown = function () {
    console.log("User moused down");
    return true; // Not needed, as long as you don't return false
};

如果您在页面上还有其他脚本通过此方法附加行为,则可以执行以下操作来防止覆盖它们:
var spyElement = document.getElementById("spy-on-me");
var oldMousedown = spyElement.onmousedown;
spyElement.onmousedown = function () {
    console.log("User moused down");
    if(oldMousedown) oldMousedown();
};

关于javascript - 使用Java脚本检测div上的鼠标单击没有副作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4631975/

10-11 07:09