1. 用 CSS 關閉選取
只要一條樣式規則 user-select: none,就能讓瀏覽器不允許你選取某個元素中的文字。
拖曳時不會出現任何反白。但文字仍然在網頁上:閱讀模式、列印成 PDF,
或能移除這條規則的擴充功能,都能恢復選取。
2. 取消複製、剪下和貼上事件
指令碼會監聽複製、剪下或貼上事件並將它取消。你可以選取文字,但按 Ctrl+C 什麼也複製不到, 或者網站會把你的剪貼簿內容換成「閱讀全文請至…」之類的文字。為該網站封鎖 JavaScript 或使用解除複製的擴充功能就能解決。同樣的手法也會在某些表單中封鎖貼上,例如「再次輸入電子郵件」欄位。
3. 取消右鍵
指令碼會取消 contextmenu 事件,讓 Chrome 的選單永遠打不開,常常還會跳出「已停用右鍵」之類的提示。 請參閱如何恢復右鍵。
4. 透明覆蓋圖層
一個看不見的元素蓋在文字上,所以你點擊時點到的是覆蓋圖層,而不是文字。 閱讀模式和網頁原始碼都不受覆蓋圖層影響。
5. 不是文字的文字
有些網頁會把文字做成圖片、放在 canvas 中,或放在影片裡。解除複製的方法在這裡都沒用, 因為根本沒有文字可以複製。請使用 Image Text to Text 這類文字辨識工具。
實際的解決辦法
如果你常遇到禁止複製的網頁,Highlight and Copy Protected Text 只要一個開關,就能關閉第 1~3 種技術。其他情況請參考 如何從受保護的網站複製文字。