禁用JavaScript中的文本选择器

Disable Text Selector In JavaScript

本文关键字:文本 选择器 JavaScript 禁用      更新时间:2023-10-31

防止默认

在上面的链接中,它描述了如何防止JavaScript中的默认行为,但只向您展示了如何禁用所有默认行为。

我只想禁用文本选择/上下文菜单

我该怎么做?还是我走错了路?

这是必要的,原因如下

  • 禁止在剧本上粘贴/复制
  • 当使用自动完成时,文本选择器会弹出,非常烦人,有时还会妨碍

这种烦恼是由J Query自动选择引起的,当它显示黑莓中的文本选择时,它会在尝试触摸选择时挡住去路。

如果通过添加填充顶部来解决问题:30px;到自动完成,所以它在文本选择器下面,但希望有更好的方法。

感谢

.noselect {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    -o-user-select: none;
    user-select: none;
}

尝试了上面的代码感谢一个良好的堆栈溢出!这解决了浏览器(例如chrome)上的问题,但没有解决web作品播放簿应用程序上的问题。这也完全禁用了编辑/输入,这是不好的。

我认为您不需要javascript来禁用文本选择,CSS就足够了:

.noselect {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    -o-user-select: none;
    user-select: none;
}

​jsFiddle此处

编辑:要允许在编辑框上键入内容,同时禁用文本选择,可以使用http://jsfiddle.net/ruisoftware/aKkSx/3/基本上撤消jQuery select()事件上的文本选择。这不是最干净的方式,但可能会为你指明正确的方向。

在css文件中包含以下行。

-webkit-user-select: none;
-moz-user-select: none;
-khtml-user-select: none;
user-select: none;

也可以内联处理。我认为CSS解决方案更好,但我总是想知道所有选项:

<element oncontextmenu="return false">
<input onselect="return false">  <!-- only <input>'s though... -->

为了防止选择文本,我认为你必须使用CSS或JS(监听拖动文本)或使用图像
请注意,浏览器显示的所有内容都可以由用户访问,因此阻止用户选择文本不会阻止他使用Chrome inspect元素从源代码中删除您的解决方案或从源代码复制粘贴。