[原]禁止复制网页内容(兼容所有浏览器)

辛辛苦苦编辑的内容,一个复制、粘贴操作就被转载/盗用了,让原创者情何以堪!

公司项目中正好需要使用,参考了若干文档,写了一个兼容所有浏览器的禁止复制网页内容的代码。

以下为jQuery写法:

// 禁用右键菜单、复制、选择(除Firefox/Opera不支持,其它所有浏览器均支持)
$(document).bind("contextmenu copy selectstart", function() {
    return false;
});
// 禁用Ctrl+C和Ctrl+V(所有浏览器均支持)
$(document).keydown(function(e) {
    if(e.ctrlKey && (e.keyCode == 65 || e.keyCode == 67)) {
        return false;
    }
});
// 设置CSS禁止选择(如果写了下面的CSS则不需要这一段代码,新版浏览器支持)
$(function() {
    $("body").css({
        "-moz-user-select":"none",
        "-webkit-user-select":"none",
        "-ms-user-select":"none",
        "-khtml-user-select":"none",
        "-o-user-select":"none",
        "user-select":"none"
    });
});

防止禁用JavaScript后失效,可以写在CSS中(新版浏览器支持,并逐渐成为标准):

body {
    -moz-user-select:none;  /* Firefox私有属性 */
    -webkit-user-select:none;  /* WebKit内核私有属性 */
    -ms-user-select:none;  /* IE私有属性(IE10及以后) */
    -khtml-user-select:none;  /* KHTML内核私有属性 */
    -o-user-select:none;  /* Opera私有属性 */
    user-select:none;  /* CSS3属性 */
}

原生JavaScript写法:

document.body.onselectstart = function() { return false; };
document.oncontextmenu = function() { return false; };
document.body.oncopy = function() { return false; };

如果用户禁用了JavaScript、且他的浏览器也不支持新的CSS属性,那就无能为力了。如果有兴趣查看源代码,就随他去吧!

原创文章,转载请注明出处:代码人生https://www.code-life.com/
本文链接地址:https://www.code-life.com/?p=440

发表评论

您的电子邮箱地址不会被公开。