【发布时间】:2011-12-02 07:00:03
【问题描述】:
我知道这个问题已经被问过 (here),但我找到的所有答案都涉及 css selector :selection (浏览器尚未广泛支持)。
那么,我怎样才能通过 jQuery 在我的 html 页面上禁用文本选择,而不是依赖 css 技巧?
【问题讨论】:
标签: javascript jquery html
我知道这个问题已经被问过 (here),但我找到的所有答案都涉及 css selector :selection (浏览器尚未广泛支持)。
那么,我怎样才能通过 jQuery 在我的 html 页面上禁用文本选择,而不是依赖 css 技巧?
【问题讨论】:
标签: javascript jquery html
这是一个简单的单行,用于禁用在整个页面上选择文本。 (是否应该是另一个问题)
$(document).bind('selectstart dragstart', function(e) {
e.preventDefault();
return false;
});
【讨论】:
dragstart,甚至可以与 jQuery-UI 一起使用
如果你想避免插件,你可以从jQuery UI源码中提取相关部分:
/*!
* jQuery UI 1.8.16
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI
*/
$.support.selectstart = "onselectstart" in document.createElement("div");
$.fn.disableSelection = function() {
return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +
".ui-disableSelection", function( event ) {
event.preventDefault();
});
};
$("#somediv").disableSelection();
【讨论】:
包含 jQuery UI 并使用 $(element).disableSelection()。
但是,禁用文本选择非常对用户不友好,除非在可能意外选择的上下文中使用(例如拖放或用户可能双击以更快执行多项更改的按钮(例如在微调器中) ))
【讨论】:
【讨论】:
$.browser 在 1.9 中已被删除,因此这将失败。