html5_禁止複製網站內容
阿新 • • 發佈:2019-02-07
轉載自: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>