我想暂停选择&在html页面中复制文本。 当我使用Javascript&非活动的右键单击用户可以使用Ctrl + V !!
答案 0 :(得分:6)
你做不到。甚至不尝试。不要惹恼你的用户。
如果您将其公开发布在网络上,则可以将其复制。从技术上讲,一旦用户看到它就会被复制。正如理论所指出的那样,所有的技术都可以被规避。哎呀,你可以看一下源代码。您可以从命令行卷曲原始数据,没有JS / IMG /层黑客可以阻止它。
答案 1 :(得分:3)
没有完整的证明解决方案。你可以玩javascript游戏(容易关闭)。您可以在文本周围放置不可见的图层,以便无法轻松选择(易于查看源代码)。您可以使用图像而不是文本(只是不好)。
答案 2 :(得分:0)
虽然我原则上同意其他海报,试图这样做可能会使用户烦恼,但有时候经理或客户要求这样做,所以需要提供答案。
查看www.dynamicdrive.com上的this page,它将为您提供一些JavaScripts。具体请参阅“禁用文本选择脚本”和“无右键单击脚本”。
禁用文本选择脚本:
/***********************************************
* Disable Text Selection script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/
function disableSelection(target){
if (typeof target.onselectstart!="undefined") //IE route
target.onselectstart=function(){return false}
else if (typeof target.style.MozUserSelect!="undefined") //Firefox route
target.style.MozUserSelect="none"
else //All other route (ie: Opera)
target.onmousedown=function(){return false}
target.style.cursor = "default"
}
//Sample usages
//disableSelection(document.body) //Disable text selection on entire body
//disableSelection(document.getElementById("mydiv")) //Disable text selection on element with id="mydiv"
没有右键单击脚本:
//Disable right mouse click Script
//By Maximus (maximus@nsimail.com) w/ mods by DynamicDrive
//For full source code, visit http://www.dynamicdrive.com
var message = "Function Disabled!";
///////////////////////////////////
function clickIE4() {
if (event.button == 2) {
alert(message);
return false;
}
}
function clickNS4(e) {
if (document.layers || document.getElementById && !document.all) {
if (e.which == 2 || e.which == 3) {
alert(message);
return false;
}
}
}
if (document.layers) {
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown = clickNS4;
} else if (document.all && !document.getElementById) {
document.onmousedown = clickIE4;
}
document.oncontextmenu = new Function("alert(message);return false")