轻松解除网页复制与粘贴限制
简单分享几种常用的解除网页复制粘贴限制的方法。
通用方法——禁用javascript
部分网站通过简单禁用JavaScript即可解除复制或者粘贴限制。
PC端以Chrome为例,在开发者工具中的Settings——Preferences(快捷键为F12——F1)里的Debugger区域内勾选disable Javascript选项即可。
Tips:用完记得关掉。
解除复制限制
小书签法(推荐)
通过浏览器书签在页面内执行JavaScript代码进而解除限制。
在浏览器内新建书签后将URL改为下面的JavaScript代码并保存。在需要解除复制限制的网页中点击该书签即可解除限制。
1 | javascript:(function(bookmarklets)%7Bfor(var i=0;i<bookmarklets.length;i++)%7Bvar code=bookmarklets%5Bi%5D.url;if(code.indexOf("javascript:")!=-1)%7Bcode=code.replace("javascript:","");eval(code)%7Delse%7Bcode=code.replace(/%5Es+%7Cs+$/g,"");if(code.length>0)%7Bwindow.open(code)%7D%7D%7D%7D)(%5B%7Btitle:"破除右键菜单限制",url:"javascript:function applyWin(a)%7Bif(typeof a.__nnANTImm__===%5Cx22undefined%5Cx22)%7Ba.__nnANTImm__=%7B%7D;a.__nnANTImm__.evts=%5B%5Cx22mousedown%5Cx22,%5Cx22mousemove%5Cx22,%5Cx22copy%5Cx22,%5Cx22contextmenu%5Cx22%5D;a.__nnANTImm__.initANTI=function()%7Ba.__nnantiflag__=true;a.__nnANTImm__.evts.forEach(function(c,b,d)%7Ba.addEventListener(c,this.fnANTI,true)%7D,a.__nnANTImm__)%7D;a.__nnANTImm__.clearANTI=function()%7Bdelete a.__nnantiflag__;a.__nnANTImm__.evts.forEach(function(c,b,d)%7Ba.removeEventListener(c,this.fnANTI,true)%7D,a.__nnANTImm__);delete a.__nnANTImm__%7D;a.__nnANTImm__.fnANTI=function(b)%7Bb.stopPropagation();return true%7D;a.addEventListener(%5Cx22unload%5Cx22,function(b)%7Ba.removeEventListener(%5Cx22unload%5Cx22,arguments.callee,false);if(a.__nnantiflag__===true)%7Ba.__nnANTImm__.clearANTI()%7D%7D,false)%7Da.__nnantiflag__===true?a.__nnANTImm__.clearANTI():a.__nnANTImm__.initANTI()%7DapplyWin(top);var fs=top.document.querySelectorAll(%5Cx22frame, iframe%5Cx22);for(var i=0,len=fs.length;i<len;i++)%7Bvar win=fs%5Bi%5D.contentWindow;try%7Bwin.document%7Dcatch(ex)%7Bcontinue%7DapplyWin(fs%5Bi%5D.contentWindow)%7D;void 0;"%7D,%7Btitle:"破除选择复制限制",url:"javascript:(function()%7Bvar doc=document;var bd=doc.body;bd.onselectstart=bd.oncopy=bd.onpaste=bd.onkeydown=bd.oncontextmenu=bd.onmousemove=bd.onselectstart=bd.ondragstart=doc.onselectstart=doc.oncopy=doc.onpaste=doc.onkeydown=doc.oncontextmenu=null;doc.onselectstart=doc.oncontextmenu=doc.onmousedown=doc.onkeydown=function ()%7Breturn true;%7D;with(document.wrappedJSObject%7C%7Cdocument)%7Bonmouseup=null;onmousedown=null;oncontextmenu=null;%7Dvar arAllElements=document.getElementsByTagName(%5Cx27*%5Cx27);for(var i=arAllElements.length-1;i>=0;i--)%7Bvar elmOne=arAllElements;with(elmOne.wrappedJSObject%7C%7CelmOne)%7Bonmouseup=null;onmousedown=null;%7D%7Dvar head=document.getElementsByTagName(%5Cx27head%5Cx27)%5B0%5D;if(head)%7Bvar style=document.createElement(%5Cx27style%5Cx27);style.type=%5Cx27text/css%5Cx27;style.innerHTML=%5Cx22html,*%7B-moz-user-select:auto!important;%7D%5Cx22;head.appendChild(style);%7Dvoid(0);%7D)();"%7D%5D) |
注:此段代码来自奔跑中的奶酪博客。也可自行搜索其他具有相同效果的代码。
Console调试法(推荐)
在开发者工具(F12)的Console(控制台)内粘贴如下代码后回车执行即可解除大部分网页的复制限制。下列代码中任选其一即可。
代码一
1 | document.oncopy=function(){ |
代码二
1 | document.write($("#contentText").html().replace(new RegExp("script","gi"),"")); |
脚本/扩展法(推荐)
浏览器安装油猴/暴力猴等脚本管理器后到Greasy Fork等平台下载安装Remove web limits(modified)等脚本。
或自行查找适配所用浏览器的相应浏览器扩展。譬如适配Chromium系的Simple Allow Copy和SuperCopy 超级复制以及适配Firefox的Absolute Enable Right Click & Copy。
删除事件监听器法(推荐)
打开开发者工具(F12),点击“选取页面中的元素”按钮(或快捷键Ctrl+Shift+C),找到源文本所在的页面元素,单击选中。然后打开右侧的事件监听器(Event Listeners)选项卡,找到对应的copy事件,右键Remove即可。
保存/打印网页法
在浏览器内将网页保存为本地文件,然后打开复制。推荐搭配SingleFile扩展使用
或在浏览器内按Ctrl+P调用浏览器的网页打印功能,将网页转换为PDF文件后再复制。
OCR识别法
截图后通过OCR识别所需文本。在某些情况下不失为一种解决方案。
QQ自带的文字识别和白描网页版都可以一试。
OLE拖放法
选中要复制的文本后直接拖动到记事本等文本编辑器中,通过OLE获取源文本。该方法平台依赖性较大,适用范围窄,不推荐。
源代码查看法
方法一(推荐)
在开发者工具(F12)的Console(控制台)中粘贴下面的代码后回车运行。代码运行后会以控制台输出的方式打印页面中的文字,复制控制台输出即可。
1 | var a = document.getElementsByTagName('p'); |
方法二
浏览器内右键空白区域选择“查看网页源代码”(或快捷键Ctrl+P),在HTML源代码页面中使用Ctrl+F查找需要复制的内容。
切换内核法
将浏览器切换为IE内核。对某些在IE模式下能正常加载内容的网页可能有效。不推荐。
搜索引擎快照法
在百度等搜索引擎中搜索该网页,找到并打开搜索引擎生成的相应网页快照,在网页快照页面中复制所需文本。不推荐。
解除粘贴限制
删除事件监听器法(推荐)
同上所述,选中相应输入框元素后在事件监听器(Event Listeners)选项卡中找到对应的Paste事件,右键Remove即可。