用XX保护内容?

时间:2013-10-12 12:40:05

标签: javascript ruby ruby-on-rails-3 flash

我有一个网页(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时,是否可以“删除”用户缓冲区?
  • 你有其他想法吗?

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

1 个答案:

答案 0 :(得分: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)">