0

我有一个网页(ruby on rails),其中包含一些我想保护内容以阻止用户复制它的文本(ctrl+c)。

当然,我有一些“保护”,但这还不够

$(function(){
    $('a.fancybox').fancybox();
    $('.prevent_select').disableSelection();
});


$.support.selectstart = "onselectstart" in document.createElement("div");
$.fn.disableSelection = function() {
    return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +
        ".ui-disableSelection", function( event ) {
        event.preventDefault();
    });
};

如果用户使用 CTRL+A,则选择所有文本。为了保护它,我想到了两种方法。但我想与您分享,以便获得一些反馈。

  • 是否可以使用 swf (Macromedia flash) 来显示文本?(一些宝石?)
  • 当网页检测到用户正在使用 ctrl+c 时,是否可以始终“删除”用户缓冲区?
  • 你有其他想法吗?

我非常感谢您的反馈和帮助。

4

1 回答 1

0

您可以使用画布绘制文本。示例:http: //jsfiddle.net/ExWei/hZmM2/

您可以在文本区域放置透明图像。(使用 CSS)

用于阻止CTRL- U, CTRL- C, CTRL -的脚本A

document.ondragstart = test;
document.onselectstart = test;
document.oncontextmenu = test;
function test() 
{
    return false;
}

document.oncontextmenu;

function catchControlKeys(event)
{
    var code=event.keyCode ? event.keyCode : event.which ? event.which : null;
    if (event.ctrlKey)
    {
        // Ctrl+U
        if (code == 117) return false;
        if (code == 85) return false;
        // Ctrl+C
        if (code == 99) return false;
        if (code == 67) return false;
        // Ctrl+A
        if (code == 97) return false;
        if (code == 65) return false;
    }
}

使用此脚本更改

<body>

<body onkeypress="return catchControlKeys(event)">
于 2013-10-12T12:51:41.490 回答