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