我正在网页上捕捉鼠标事件,特别是onclick。当我点击两个不同的位置时,我的代码在这两个位置做了一些事情。但是在第二次单击(使用event.shiftKey = true)之后,我还发现正在选择这两个位置之间的页面内容,就像我在起点和终点之间进行了单击 - 拖动 - 释放一样。 / p>
我已经看过几个问题[1]和[2]关于不允许选择文本的问题,但这两个答案都涉及CSS,这对于这种情况是不合适的,因为元素涉及是任意的和不同的数量,因为我不想禁用显示选择(我想显示选择,如果有一个!),我想禁用在特定时间实际获得选择。因此,清除任何可能“意外”发生的选择也是不可能的,因为这将摆脱任何先前的有效选择。
我在想这个事件以某种方式传播到它正在进行选择的本机代码中,所以我尝试了:
event.cancelBubble = true
event.preventDefault()
return false
但是这没用。我只用Chrome测试了这个,但跨浏览器最好。
更新:我创建了一个小提琴demonstrate the problem。单击输出中的任何文本行。然后切换+点击任何其他行。这两行都将应用CSS,但也有一个浅蓝色的浏览器选择,我试图阻止。
更新2:我投票结束是因为@ivy_lynx指出,它确实是重复的,而linked question的答案解决了这个问题。