防止选择&仿形

时间:2009-06-29 07:51:46

标签: javascript html

我想暂停选择&在html页面中复制文本。 当我使用Javascript&非活动的右键单击用户可以使用Ctrl + V !!

3 个答案:

答案 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")