導讀
在瀏覽網頁時經常會出現的一件事,當想要復制,突然發現復制無法正常使用?如:
1.XX網禁止轉載的文章無法復制或者是復制出的內容多出了一點其他的東西
2.XX文檔共享網干脆直接不能選中了。
解決思路
欲先制敵,必先惑敵。想要解除復制粘貼的限制,就必須要清楚它們是如何實現的。不管如何,瀏覽器上能夠運行的都是 JAVAScript,它們都是使用 JavaScript 實現的。實現方式大致都是監聽相應的事件(例如監聽 Ctrl-C等),然后做一些特別的操作。大部分情況下使用 的方法都是通過JavaScript 在相應事件中返回 false,來阻止對應事件。那么,既然事件都被阻止了,是否意味著我們就束手無策了呢?所能想到的解決方案大致有三種方向:
1.使用 JavaScript 監聽事件并自行實現復制/剪切/粘貼功能
- 優點:實現完成后不管是任何網站都能使用,并且不會影響到監聽之外的事件,也不會刪除監聽的同類型事件,可以解除瀏覽器本身的限制(密碼框禁止復制)
- 缺點:某些功能自行實現難度很大,例如選擇文本
2.重新實現 addEventListener 然后刪除掉網站自定義的事件
- 優點:事件生效范圍廣泛,通用性高,不僅 復制/剪切/粘貼,其他類型的事件也可以解除
- 缺點:實現起來需要替換 addEventListener 事件夠早,對瀏覽器默認操作不會生效(密碼框禁止復制),而且某些網站也無法破解
3.替換元素并刪除 DOM 上的事件屬性
- 優點:能夠確保網站 js 的限制被解除,通用性高,事件生效范圍廣泛
- 缺點:可能影響到其他類型的事件,復制節點時不會復制使用 addEventListener 添加的事件
總之,如果真的想解除限制,恐怕需要兩種方式并用才可以。說了這么多,是不是感覺很復雜的樣子,我到底該如何操作才能解除復制粘貼限制的?不用著急,Greasemonkey插件可快速的幫我們解決這種限制。
解決方法
安裝Greasemonkey插件即可快速解除網頁復制粘貼限制。
插件安裝方式: https://greasyfork.org/zh-CN/help/installing-user-scripts