引言
当你在上网时,有没有遇到过这样的网页呢?在这个页面中,你无法进行复制,甚至是连鼠标的右键菜单都点不开。其实,这些功能都是通过JavaScript来实现的,让我们一起来了解一下吧!
思路分析
下面以某树的作业页面为例,来看一下它的禁止复制功能是如何实现的。
在这个页面中,鼠标右键菜单被屏蔽了,当我们点击鼠标右键时,会在控制台得到如下信息
让我们来看一下,这个功能是如何实现的。
实现代码如下:
ƒ (e){
console.log("屏蔽右键菜单"),window.event&&(e=window.event);
try{
var t=e.srcElement;
return"INPUT"==t.tagName&&"text"==t.type.toLowerCase()||"TEXTAREA"==t.tagName
}catch(e){
return!1
}
}
突破方法很简单,只需令 document.οncοntextmenu=true; 即可。
document.oncontextmenu=true;
回到页面,我们可以发现右键菜单可以用了。
虽然,我们可以使用右键菜单了,但是却依旧不能够复制。下面让我们来解决禁止复制的功能。
老套路,先在控制台中调试一下。
ƒ (e){window.event&&(e=window.event);try{var t=e.srcElement;return"INPUT"==t.tagName&&"text"==t.type.toLowerCase()||"TEXTAREA"==t.tagName}catch(e){return!1}}
对比后发现,这三处用的都是同一函数啊!
好了,现在我们就可以进行复制了。
总结
解决网页中禁止复制功能的三句JavaScript代码如下:
//右键菜单
document.oncontextmenu=true;
//复制
document.onselectstart=true;
document.oncopy=true;
当然,针对具体情况应该具体分析,不同网站的实现代码可能会不一样,不能一概而论。