如何防止双击使用 JavaScript 突出显示网页文本
How to prevent a double-click from highlighting web-page text using JavaScript?
在我的HTML页面上有一个带有一些文本的元素。我分配了一个在单击该元素时要执行的操作。当用户连续多次单击元素时,有时会发生双击,这会导致文本被选中(突出显示(,从而损坏外观。我试图使用虚拟事件处理程序来阻止它,该处理程序阻止双击 (dblclick( 事件的默认行为。但是,这似乎不起作用。似乎在我的虚拟事件处理程序被执行之前,文本已被选中并突出显示。
function doNothing(event) {
alert('doNothing'); // Added for debugging. The alert is shown, meaning the event handler is invoked. When I get the alert, the text is already highlighted.
if(!event) event = window.event;
if(event.preventDefault) event.preventDefault();
event.cancelBubble = true;
if(event.stopPropagation) event.stopPropagation();
return false;
}
myElem.onlick = doSomething; // This is the event for a single click. Works well.
myElem.ondblclick = doNothing; // The event handler is called, but the text is already highlighted.
具体问题:
1(我所追求的与双击事件有任何关系吗?(正如我看到触发警报时文本已经突出显示的那样,我怀疑这可能是另一种机制。我怀疑(单击(事件的默认行为可能与此有关,但我也取消了(单击(事件的默认行为。
2(如果它与dblclick事件无关,那么它与那有什么关系?我该如何预防?
3(如果是关于dblclick事件,我做错了什么吗?(顺便说一句,我想使用所有preventDefault()
和cancelBubble = true
和stopPropagation()
和return false
是矫枉过正。为了防止默认行为,我需要最少的代码是多少?
4(任何其他想法如何获得所需的结果(双击不选择并突出显示文本(?
我正在使用FF 11进行测试(但最终需要一个跨浏览器解决方案(。
谢谢!
myElem.onmousedown = function(e) {
e.preventDefault()
}
编辑:将其从返回 fasle 更改为 e.preventDefault,这仍将允许触发点击事件。
有同样的问题,我立即在 dblclick 处理程序中添加了 event.preventDefault((,但它没有帮助。我没有考虑到的是事件冒泡以及默认行为在父元素中触发之前在子元素中触发的事实。
如果父级有多个孩子,您仍然需要在其中选择文本,但不希望在双击时进行选择,有 2 个选项:
- 清除父级事件处理程序中的选择,例如:window.getSelection((.empty((.这种方法的问题在于,您会注意到所选文本闪烁,并且在Opera中会出现一个弹出窗口("复制","搜索"(。
- 遍历所有子项,并在它们的 dblclick 中调用 e.PreventDefault((。
- 在 Angular 应用程序的弹出窗口中显示网页
- Javascript:从网页中获取文本,更改它,然后再次显示网页
- 如何显示网页中使用的超链接列表
- 提取并使用javascript / greasemonkey显示网页
- 使用 iframe 显示网页的一部分
- 如何在显示网页时调用脚本 jquery
- 如何防止双击使用 JavaScript 突出显示网页文本
- 使用 Apache 模块和 Javascript/jQuery 显示网页的最后修改日期
- 显示网页时使用了两个或多个 CSS 样式
- 如何使用phonegap显示网页
- 突出显示网页上的文本
- 不同的操作系统对显示网页的影响有多大
- 设置进度条动画以显示网页的进度
- 如何使用.js文件使用document.write()显示网页
- IE8中的问题,使用引导程序显示网页
- 是否可以从我的Chrome扩展在窗口中显示网页,只使用JS、HTML和CSS
- jQuery:只在document.ready后显示网页
- 自动计数和显示网页上的单词数
- 在IOS和Windows上显示网页图像的方法
- 如何从url在html页面中显示网页