【问题标题】:disabling text selection is not working in IE using jquery禁用文本选择在使用 jquery 的 IE 中不起作用
【发布时间】:2012-07-23 00:13:50
【问题描述】:

我尝试使用 JQuery 禁用文本选择。它在 Firefox 中运行良好,但在 IE 中却不行。我有一个带有 id 的文本输入字段,比如 123。对于这个元素,不应允许选择填充的文本。谁能给我提供示例代码?我使用的是 IE 6。

【问题讨论】:

  • 但您仍然可以输入文字?请向我们展示您到目前为止所做的工作......可能会有所帮助
  • 请发布您用来禁用输入字段的代码...
  • 我知道 id 123 可能只是一个例子,但它不是一个有效的 id :P
  • 我觉得升级每台使用 IE6 的计算机仍然比建立一个完全使用 IE6 的网站要花更少的精力......只是说。
  • IE6 几乎不支持 HTML 4...

标签: javascript jquery internet-explorer-6


【解决方案1】:

看看 IE 的专有可取消事件之一,onselectstart

$("#123").bind("selectstart", function (evt) {
    evt.preventDefault();
});

工作示例(需要 IE 6-10):http://jsfiddle.net/AndyE/Cp76b/

将此处理程序与您当前的解决方案结合使用。请注意,某些浏览器可以通过 CSS3 user-select 属性或 unselectable(IE,仅限 Opera)属性禁用用户选择。例如:

<input type="text" id="123" unselectable="on">
#123 { 
    -webkit-user-select: none; 
    -moz-user-select: none;
    -ms-user-select: none;
}

工作示例已更新:http://jsfiddle.net/AndyE/Cp76b/2

这使得 JavaScript 解决方案在这些浏览器中变得多余,但具有为禁用 JS 的用户禁用选择的优势。

【讨论】:

  • 好的,谢谢。你的回答很有帮助。我试过了,它现在工作正常...... J
  • 我很确定-o-user-select 不存在。 Opera 使用 IE 的unselectable 属性。无论如何 +1。
  • @TimDown:没错。 IE 10 目前也不支持-ms-user-select,除非它在 ​​Windows Developer Preview 版本中。不过,我认为将它们添加到列表中并没有什么坏处。我希望在不久的将来会增加对它们的支持。
  • @AndyE:别指望它。 user-select 不在当前的 CSS 3 规范中,Opera 和 IE 已经有了一个可行的替代方案 (unselectable)。
  • @AndyE:我真的不知道发生了什么。可能它被权力视为行为而不是样式,因此不适合 CSS,但这只是猜测。
【解决方案2】:

试试这个:我没有 IE6,但这至少适用于 IE7

   $("#123").bind( "selectstart", function(e){
    e.preventDefault();
    return false;
    });

【讨论】:

    猜你喜欢
    • 2011-05-29
    • 2013-10-14
    • 1970-01-01
    • 2011-02-15
    • 2013-12-13
    • 2015-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多