禁止複製文字是一個網路普及的時代就必然會有需求的老功能了。相對的,也會有對應的破解之道。說穿了,只要明白原理,任何的防止方法都只能防君子。作出內容的差異化或是埋藏一些小彩蛋於文字中才是比較正向面對的方式。
鎖定方法
為了達到完整目的,若是用 css 語法來修改的,一般都會綁定在 <body> 標籤上。若是使用 JavaScript 的,多半就是針對鍵盤上的按鍵或是滑鼠事件上事件監聽器,將可能會出現文字的地方以 return false 來替代;滑鼠動作也是 return false,這樣就不會出現有關選項了。
1.鎖定右鍵不給使用
1 2 3 4 |
<script> document.oncontextmenu = new Function("return false"); oncontextmenu="return false;" </script> |
2.user-select: none 來禁止複製
1 2 3 4 5 6 7 8 |
/*這段 css 語法 要放在 </head>之前,這樣才能強制每個頁面都載入 */ <style> body { -webkit-user-select:none; -webkit-touch-callout:none; -moz-user-select: none; } </style> |
3.複製貼上會得到空白
1 2 3 4 5 |
<script> document.body.oncopy = function(){ event.returnValue=false; } </script> |
4.針對截圖工具,禁止列印
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
/*HTML部分*/ <p id='test'> 要隱藏的文字 </p> // 將 id 放置在想要隱藏的文字標籤內 /*JavaScript 部分,需引用 jQuery*/ function copyToClipboard(elementId) { var aux = document.createElement("input"); aux.setAttribute("value", document.getElementById(elementId).innerHTML); document.body.appendChild(aux); aux.select(); document.execCommand("copy"); document.body.removeChild(aux); } $(document).ready(function(){ $(window).keyup(function(e){ if(e.keyCode == 44){ copyToClipboard('test'); // 輸入想要隱藏的id $("body").hide(); }; }); }); |
5. 禁止使用一系列的組合鍵(像是 Ctrl, Shift …等)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
/*以下代碼由月光部落所擷取,完整文章內容可複製右邊網址前往:https://tinyurl.com/t2jxm59*/ <script type="text/javascript"> function iEsc(){ return false; } function iRec(){ return true; } function DisableKeys() { if(event.ctrlKey || event.shiftKey || event.altKey) { window.event.returnValue=false; iEsc();} } document.ondragstart=iEsc; document.onkeydown=DisableKeys; document.oncontextmenu=iEsc; if (typeof document.onselectstart !="undefined") document.onselectstart=iEsc; else{ document.onmousedown=iEsc; document.onmouseup=iRec; } function DisableRightClick(qsyzDOTnet){ if (window.Event){ if (qsyzDOTnet.which == 2 || qsyzDOTnet.which == 3) iEsc();} else if (event.button == 2 || event.button == 3){ event.cancelBubble = true event.returnValue = false; iEsc();} } </script> |
解鎖方法
破解方法很明顯的,就是反向操作:把 JavaScript 改寫、停用或是調整 css 屬性
1.寫一段 JavaScript 把上方的限制蓋掉,並存成書籤以後點一下就好
請點選此篇 免安裝外掛, 直接破解網頁「鎖右鍵+防複製」的方法 (使用書籤),複製完整版的解除 JavaScript 和 css 鎖定的書籤。
2.禁止使用 JavaScript
畢竟限制是用js上的,那停用後就沒問題。
3.裝個擴充套件隨時打開就好
像是 Google Chrome 上的 Enable Copy
結論
在網路上的文字只要有心,絕對都抓得下來,所以真的不需要想盡辦法去鎖。如果真的不想要在網路上出現,唯一的方法就是不要放到網路上。
按讚加入粉絲團