如何在没有输入文本区域和选择项目的情况下阻止文本选择 我实际上有在IE中工作但不在其他浏览器中的脚本,这里是:
var omitformtags=["input", "textarea", "select"]
omitformtags=omitformtags.join("|")
function disableselect(e){
if (omitformtags.indexOf(e.target.tagName.toLowerCase())==-1)
return false
}
function reEnable(){
return true
}
if (typeof document.onselectstart!="undefined")
document.onselectstart=new Function ("return false")
else{
document.onmousedown=disableselect
document.onmouseup=reEnable
}
document.onmousedown=click;
function click()
{
if ((event.button==2) || (event.button==3)) { alert("Yazı Kopyalayamazsınız!");}
}
我需要在其他浏览器中以相同的方式工作,必须有一个现成的脚本,只是无法在网上找到..
答案 0 :(得分:4)
<div onmousedown='return false;' onselectstart='return false;'></div>
onmousedown禁用了对Firefox,Safari,Opera,Chrome和大多数其他网络浏览器的选择,onselectstart for IE。
虽然禁用文本选择和上下文菜单是非常糟糕的样式,但不会阻止专业用户选择您的文本。只需在浏览器中禁用JavaScript即可再次进行选择。
答案 1 :(得分:2)
更新了我的答案以便更清楚:
浏览器可以禁用使用css样式或使用特殊元素属性进行选择。这种方式更好:
Opera和IE忽略了这样的风格,但是html元素属性不可选,否则会选择。尝试以下页面(我在IE8,FF3.6,Safari5,opera11,Chrome8中测试过):
<html>
<head>
<style>
.unselectable {
-moz-user-select: none; /* for FireFox */
-webkit-user-select: none; /* for Chrome and Safari */
-khtml-user-select: none; /* probably old webkit browsers, but new support it too */
user-select: none; /* for future CSS3 compliant browsers */
}
</style>
</head>
<body>
<!-- add unselectable class to deny selecting in FF, Chrome, Safari and CSS3 compliant browsers -->
<!-- add unselectable attribute to deny selecting in Opera and IE -->
<div class="unselectable" unselectable="on">test</div>
</body>
</html>
有关它的其他信息,请访问this page。现在您可以选择最适合您使用/ mantain的选项。再一次 - 这个解决方案根本不需要javascript,应该更安全(如果你可以编辑html \ css页面而不需要动态。否则你可以尝试通过javascript添加css class \ element属性..)