跳过正文
  1. 文章/

轻松解除网页复制与粘贴限制

技术 Web JavaScript Console
目录

简单分享几种常用的解除网页复制粘贴限制的方法。

通用方法——禁用 JavaScript
#

部分网站通过简单禁用 JavaScript 即可解除复制或者粘贴限制。

PC端以 Chrome 为例,在开发者工具中的 Settings—Preferences(快捷键为 F12 & F1)里的 Debugger 区域内勾选 Disable JavaScript 选项即可。

Tips: 用完记得关掉。

解除复制限制
#

小书签法(推荐)
#

通过浏览器书签在页面内执行 JavaScript 代码进而解除限制。

在浏览器内新建书签后将 URL 改为下面的 JavaScript 代码并保存。在需要解除复制限制的网页中点击该书签即可解除限制。

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(控制台)内粘贴如下代码后回车执行即可解除大部分网页的复制限制。下列代码中任选其一即可。

代码一
#

document.oncopy=function(){
event.returnValue=true;
};
document.onselectstart=function(){
event.returnValue=true;
};
document.oncontextmenu=function(){
event.returnValue=true;
}; 

代码二
#

document.write($("#contentText").html().replace(new RegExp("script","gi"),""));

脚本/扩展法(推荐)
#

浏览器安装油猴/暴力猴等脚本管理器后到 Greasy Fork 等平台下载安装 Remove web limits(modified) 等脚本。

或自行查找适配所用浏览器的相应浏览器扩展。譬如适配 Chromium 系的 Simple Allow CopySuperCopy 超级复制 以及适配 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(控制台)中粘贴下面的代码后回车运行。代码运行后会以控制台输出的方式打印页面中的文字,复制控制台输出即可。

var a = document.getElementsByTagName('p');
for(var i=0;i<a.length;i++){console.log(a[i].innerText)};

方法二
#

浏览器内右键空白区域选择“查看网页源代码”(或快捷键 Ctrl+P),在 HTML 源代码页面中使用 Ctrl+F 查找需要复制的内容。

切换内核法
#

将浏览器切换为 IE 内核。对某些在 IE 模式下能正常加载内容的网页可能有效。不推荐。

搜索引擎快照法
#

在百度等搜索引擎中搜索该网页,找到并打开搜索引擎生成的相应网页快照,在网页快照页面中复制所需文本。不推荐。

解除粘贴限制
#

删除事件监听器法(推荐)
#

同上所述,选中相应输入框元素后在事件监听器(Event Listeners)选项卡中找到对应的 Paste 事件,右键 Remove 即可。

参考
#

【总结】解除网页文本禁止复制限制的六种方法

解除网页复制限制的几种方法

网页内容禁止复制怎么办?教你8种方法轻松搞定,全网最全!

秘技 | 一个小书签,帮你解除网页禁止复制和右键限制的问题

网页解除复制粘贴限制的一些小技巧

白鼠Cysnies
作者
白鼠Cysnies
风檐展书读,古道照颜色

相关文章

通过 NodeInject 和 Yporaject 激活 Typora
技术 Typora Crack Rust
辞旧迎新——荣耀畅玩 7X(BND-AL10)刷机手记
技术 Android Flashing Unlock Honor 7X Huawei
部署 Cloudflare Argo Tunnel 实现零成本内网穿透
技术 内网穿透 Argo Tunnel Cloudflare