爲什麼不讓我複製?

我們應該都遇到過這種情況,有時候想在網絡上覆制一些需要用的的東西,會提示:禁止轉載、禁止複製等。

有時候的需求是網站中有些內容不希望別人複製,那麼就需要用代碼控制:可以屏蔽鼠標右鍵菜單、複製粘貼、選中等。

下面分享幾種避免複製的方法

第一種:

//屏蔽右鍵菜單 
document.oncontextmenu = function(event) { 
    if (window.event) { 
        event = window.event; 
    } 
    try {
        var the = event.srcElement; 
        if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")) {
            return false; 
        } 
        return true; 
    } catch (e) { 
        return false; 
    } 
} 

//屏蔽粘貼 
document.onpaste = function(event) { 
    if (window.event) { 
        event = window.event; 
    } 
    try { 
        var the = event.srcElement; 
        if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")) {
            return false; 
        } 
        return true; 
    } catch (e) { 
        return false; 
    } 
} 
//屏蔽複製 
document.oncopy = function(event) { 
    if (window.event) { 
        event = window.event; 
    } 
    try { 
        var the = event.srcElement; 
        if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")) { 
            return false; 
        } 
        return true; 
    } catch (e) { 
        return false; 
    } 
} 
//屏蔽剪切 
document.oncut = function(event) { 
    if (window.event) { 
        event = window.event; 
    } 
    try { 
        var the = event.srcElement; 
        if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")) { 
            return false; 
        } 
        return true; 
    } catch (e) { 
        return false; 
    } 
} 
//屏蔽選中 
document.onselectstart = function(event) {
    if (window.event) { 
        event = window.event; 
    } 
    try { 
        var the = event.srcElement; 
        if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")) {
            return false; 
        } 
        return true; 
    } catch (e) { 
        return false; 
    } 
}


第二種方法:加入js代碼

<script type="text/javascript">
// oncontextmenu 事件在元素中用戶右擊鼠標時觸發並打開上下文菜單
document.oncontextmenu=newFunction("event.returnValue=false");
// onselectstart幾乎可以用於所有對象,其觸發時間爲目標對象被開始選中時(即選中動作剛開始,尚未實質性被選中)document.onselectstart=newFunction("event.returnValue=false");
</script>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<style>
*{margin: 0;padding: 0;}
.container h1 {color: gold;text-align:center;margin-bottom:30px;}
.container p {width: 500px;margin:0 auto;color: purple;text-indent: 30px;}
</style>
</head>
<body>
<div>
    <h1>文化的含義</h1>
    <p>
從知乎上看到一個關於文化的解讀,在這裏分享給大家。

“文化”可以用四句話表達:
植根於內心的修養;
無需提醒的自覺;
以約束爲前提的自由;
爲別人着想的善良。

根植於內心的修養,是指由來已久,深入骨髓的一個人的高尚品行。

無需提醒的自覺,是在根植於內心的修養基礎上,才能做到的自覺,自覺包括我們的一切行爲規範。

以約束爲前提的自由,是以上兩句話的延伸,有修養,會自覺,才能達到自律,自由。這種自由是有所爲,有所不爲的,是真正的自由。

爲別人着想的善良,能做到以上三句話所表述的,那這個人一定是善良的,也一定會爲別人着想的。這樣的人,真的很偉大!是一個覺悟了的人!我心嚮往之。
    </p>
</div>
<!-- 第二種方法:通過js代碼實現 -->
<script type="text/javascript">
// oncontextmenu 事件在元素中用戶右擊鼠標時觸發並打開上下文菜單
document.oncontextmenu=newFunction("event.returnValue=false");
// onselectstart幾乎可以用於所有對象,其觸發時間爲目標對象被開始選中時(即選中動作剛開始,尚未實質性被選中)

document.onselectstart=newFunction("event.returnValue=false");
</script>
</body>
</html>


第三種方法:

在<body>中加入以下代碼:

<body oncontextmenu="return false" onselectstart="return false">
 //或
<body oncontextmenu="event.returnValue=false" onselectstart="event.returnValue=false">

body中加入代碼的這種方法有個缺陷就是取決於body的內容,如果body內容較少,從body下方往上選中內容,仍然是可以複製網站的內容的。

如果只限制複製,可以在<body>加入以下代碼:

<body oncopy="alert('對不起,禁止複製!');return false;"> 
<!DOCTYPE html>
<html>
    <head>
    <meta charset="UTF-8" />
<style>
    *{margin: 0;padding: 0;}
    .container h1 {color: gold;text-align:center;margin-bottom:30px;}
    .container p {width: 500px;margin:0 auto;color: purple;text-indent: 30px;}
</style>
    </head>
<body oncopy="alert('對不起,禁止複製!');return false;">
<div>
     <h1>文化的含義</h1>
    <p>
從知乎上看到一個關於文化的解讀,在這裏分享給大家。

“文化”可以用四句話表達:
植根於內心的修養;
無需提醒的自覺;
以約束爲前提的自由;
爲別人着想的善良。

根植於內心的修養,是指由來已久,深入骨髓的一個人的高尚品行。

無需提醒的自覺,是在根植於內心的修養基礎上,才能做到的自覺,自覺包括我們的一切行爲規範。

以約束爲前提的自由,是以上兩句話的延伸,有修養,會自覺,才能達到自律,自由。這種自由是有所爲,有所不爲的,是真正的自由。

爲別人着想的善良,能做到以上三句話所表述的,那這個人一定是善良的,也一定會爲別人着想的。這樣的人,真的很偉大!是一個覺悟了的人!我心嚮往之。
    </p>
    </div>
</body>
</html>


第四種方法:

禁用Ctrl+C和Ctrl+V,代碼:

// 禁用Ctrl+C和Ctrl+V(所有瀏覽器均支持)
$(document).keydown(function(e) {
  if(e.ctrlKey && (e.keyCode == 86 || e.keyCode == 67)) {
    return false;
  }
});
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<style>
    *{margin: 0;padding: 0;}
    .container h1 {color: gold;text-align:center;margin-bottom:30px;}
    .container p {width: 500px;margin:0 auto;color: purple;text-indent: 30px;}
</style>
</head>
<body>
<div>
 <h1>文化的含義</h1>
    <p>
從知乎上看到一個關於文化的解讀,在這裏分享給大家。

“文化”可以用四句話表達:
植根於內心的修養;
無需提醒的自覺;
以約束爲前提的自由;
爲別人着想的善良。

根植於內心的修養,是指由來已久,深入骨髓的一個人的高尚品行。

無需提醒的自覺,是在根植於內心的修養基礎上,才能做到的自覺,自覺包括我們的一切行爲規範。

以約束爲前提的自由,是以上兩句話的延伸,有修養,會自覺,才能達到自律,自由。這種自由是有所爲,有所不爲的,是真正的自由。

爲別人着想的善良,能做到以上三句話所表述的,那這個人一定是善良的,也一定會爲別人着想的。這樣的人,真的很偉大!是一個覺悟了的人!我心嚮往之。
    </p>
</div>

<script src="http://libs.baidu.com/jquery/2.1.1/jquery.min.js"></script>

<script>
$(document).keydown(function(e) {
 if(e.ctrlKey && (e.keyCode == 86 || e.keyCode == 67)) {
 alert('不能Ctrl+C和Ctrl+V複製、粘貼');
   return false;
 }
});
</script>
</body>
</html>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章