【问题标题】:How do I prevent text and/or page content double-click highlighting in html and javascript?如何防止文本和/或页面内容在 html 和 javascript 中双击突出显示?
【发布时间】:2010-12-06 19:55:18
【问题描述】:

有点奇怪的问题,但我正在为万圣节派对制作一款游戏。 Javascript/HTML 用于快速而肮脏的开发。 (这将在投影仪上全屏显示,并使用 Wiimote 进行鼠标控制)。这就是我正在使用的,我的问题并不是要引起对我的代码选择的批评。它工作得很好,除了一件事。

基本上,它是一个射击场/导弹命令风格的游戏,您需要在物体在屏幕上移动时点击或射击它们。我有用于单击对象的 onmousedown 处理程序。但是,当您双击时,即快速开火,该对象将突出显示,如果您错过该对象,则该对象以及同一 div 中包含的其他对象也是如此。为了解决这个问题,在 mousedown 处理程序中,我设置焦点/选择一个不在页面上的文本框。这在一定程度上有效,因为对象不会保持突出显示,但它们会在失去焦点之前短暂突出显示。

简而言之,有没有更好的方法来防止双击对我的页面产生这种影响?

【问题讨论】:

标签: javascript html


【解决方案1】:

在 Firefox 中,只需让事件返回 false 即可停止突出显示。 IE 有点复杂——你必须让元素的 'onselectstart' 函数返回 false。

noHighlightObjects[i].onselectstart = function() {
            return false;
        };

【讨论】:

    【解决方案2】:

    我相信您应该能够通过停止事件传播来避免此问题。这应该可以通过从鼠标处理程序返回 false 来实现。

    【讨论】:

    • 我采用这种方法来防止双击选择文本,但必须在 mousedown 处理程序上调用preventDefault()。它不适用于 click 和 dblclick 处理程序。
    【解决方案3】:

    发件人:Prevent text selection after double click

    * {
         -moz-user-select: none; // mozilla browsers
         -khtml-user-select: none; // webkit browsers
    }
    

    【讨论】:

    • 不要忘记user-select: none 以备将来兼容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 2011-11-20
    • 2013-04-21
    • 2012-03-28
    相关资源
    最近更新 更多