1. 程式人生 > >html5_禁止複製網站內容

html5_禁止複製網站內容

 轉載自:http://www.cnblogs.com/yidaixiaohui/p/7742727.html#3823512
```
//若是你不想別人複製你的網站內容,可以把這段js程式碼加到你網頁上,即可遮蔽滑鼠右鍵選單、複製貼上、選中等
  有時候的需求是網站中有些內容不希望別人複製,那麼就需要用程式碼控制。方法有多種:
第一種:

//遮蔽右鍵選單 
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=new Function("event.returnValue=false"); 

// onselectstart幾乎可以用於所有物件,其觸發時間為目標物件被開始選中時(即選中動作剛開始,尚未實質性被選中)

document.onselectstart=new Function("event.returnValue=false"); 

</script>
例子:

<!DOCTYPE html>

<html lang="zh">

<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 class="container">

<h1>火影忍者</h1>

<p>

十多年前一隻擁有巨大威力的妖獸“九尾妖狐”襲擊了木葉忍者村,當時的第四代火影拼盡全力,以自己的生命為代價將“九尾妖狐”封印在了剛出生的鳴人身上。木葉村終於恢復了平靜,但村民們卻把鳴人當成像“九尾妖狐”那樣的怪物看待,所有人都疏遠他。 鳴人自小就孤苦無依,一晃十多年過去了,少年鳴人考入了木葉村的忍者學校,結識了好朋友佐助和小櫻。佐助是宇智波家族的傳人之一,當他還是小孩的時候他的哥哥——一個已經擁有高超忍術的忍者將他們家族的人都殺死了,然後投靠了一直想將木葉村毀滅的大蛇丸,佐助自小就發誓要超越哥哥,為家族報仇。鳴人他們在忍者學校得到了教官卡卡西的精心指點,在他的幫助下去迎接成長中的一次又一次挑戰! 

</p>

</div>

<!-- 第二種方法:通過js程式碼實現 -->

<script type="text/javascript">

// oncontextmenu 事件在元素中使用者右擊滑鼠時觸發並開啟上下文選單

document.oncontextmenu=new Function("event.returnValue=false"); 

// onselectstart幾乎可以用於所有物件,其觸發時間為目標物件被開始選中時(即選中動作剛開始,尚未實質性被選中)

document.onselectstart=new Function("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 lang="zh">

<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 class="container">

<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 lang="zh">

<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 class="container">

<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>