javascript:禁用文本select

我正在使用JavaScript来禁用我的网站上的文字select。

代码是:

<script type="text/JavaScript"> function disableselect(e){ return false } function reEnable(){ return true } document.onselectstart=new Function ("return false") if (window.sidebar){ document.onmousedown=disableselect document.onclick=reEnable } </script> 

类似的脚本可以在这里find: http : //rainbow.arch.scriptmania.com/scripts/no_right_click.html

在我的本地主机上:所有浏览器(Firefox,Chrome,IE和Safari)都很好用。

在我的Live站点上:除了Firefox之外,其他都可以。

我的问题是:

  1. 有没有人有一个build议,为什么Firefox的行为不同的现场和本地主机。 注意:Javascript已启用。

  2. 也许我的脚本太简单了,所以我尝试了以下完全相同的结果: http : //freeware.ke-zo.com/CODES/DisableRC.txt

只要使用这个CSS方法:

 body{ -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } 

你可以在这里find相同的答案: 如何禁用文本select突出显示使用CSS?

对于JavaScript使用这个function:

 function disableselect(e) {return false} document.onselectstart = new Function (return false) document.onmousedown = disableselect 

使select使用这个:

 function reEnable() {return true} 

并在你想要的任何地方使用此function:

 document.onclick = reEnable 

我正在编写滑块ui控件来提供拖动function,这是我阻止用户拖动时select内容的方式:

 function disableSelect(event) { event.preventDefault(); } function startDrag(event) { window.addEventListener('mouseup', onDragEnd); window.addEventListener('selectstart', disableSelect); // ... my other code } function onDragEnd() { window.removeEventListener('mouseup', onDragEnd); window.removeEventListener('selectstart', disableSelect); // ... my other code } 

在你的dom上绑定startDrag

 <button onmousedown="startDrag">...</button> 

如果要静态禁用所有元素的文本select,请在元素加载时执行代码:

 window.addEventListener('selectstart', function(e){ e.preventDefault(); });