1.有时候我们不想让别人调试爬取我们的网站,我们可以禁用F12及鼠标右键,具体代码如下:
//禁用F12
document.onkeydown = function(){
if(window.event && window.event.keyCode == 123) {
alert("不要扒网站啦,一首凉凉送给你");
event.keyCode=0;
event.returnValue=false;
}
if(window.event && window.event.keyCode == 13) {
window.event.keyCode = 505;
}
if(window.event && window.event.keyCode == 8) {
alert(str+"\n请使用Del键进行字符的删除操作!");
window.event.returnValue=false;
}
}
//禁用右键
document.oncontextmenu = function (event){
if(window.event){
alert("不要扒网站啦,一首凉凉送给你");
event = window.event;
}try{
var the = event.srcElement;
if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")){
return false;
}
return true;
}catch (e){
return false;
}
}
//禁用粘贴
document.onpaste = function (event){
if(window.event){
event = window.event;
}try{
var the = event.srcElement;
if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")){
return false;
}
return true;
}catch (e){
return false;
}
}
//禁用复制
document.oncopy = function (event){
if(window.event){
event = window.event;
}try{
var the = event.srcElement;
if(!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")){
return false;
}
return true;
}catch (e){
return false;
}
}
//禁用剪切
document.oncut = function (event){
if(window.event){
event = window.event;
}try{
var the = event.srcElement;
if(!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")){
return false;
}
return true;
}catch (e){
return false;
}
}
//禁用选中
document.onselectstart = function (event){
if(window.event){
event = window.event;
}try{
var the = event.srcElement;
if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")){
return false;
}
return true;
} catch (e) {
return false;
}
}
2.当我们添加以上代码后,还会有一点问题,就是当别人先打开浏览器点开F12后在输入我们的网址就不会屏蔽,我们可以再次添加一些代码进行无限debugger,这样别人也不会拿到我们网站的资源,具体代码如下:
//无限debugger,开发中无法获取图片资源
setInterval(function() {
check();
}, 2000);
var check = function() {
function doCheck(a) {
if (('' + a / a)['length'] !== 1 || a % 20 === 0) {
(function() {}['constructor']('debugger')());
} else {
(function() {}['constructor']('debugger')());
}
doCheck(++a);
}
try {
doCheck(0);
} catch (err) {}
};
check();
3.如果用户Ctrl + Shift + I 也可以打开控制台,这样我们可以判断检测浏览器高度进行网页跳转比如跳转到百度,如果用户Ctrl + Shift + I 打开控制台,浏览器会发生变化进行网页的跳转,这样别人就打开不了控制台了(需要排除手机端,不然的话手机端用户点击搜索框浏览器高度发生变化也会跳转,本代码使用ua检测用户的浏览器排除了手机端),如果用户先打开浏览器开发者模式并且切换到手机模式,那么我们就可以在加一个debug代码配合着用就可以了,具体代码如下(评论后刷新即可拿到)
因此3种方法配合着使用就可以了。
免责声明:
更多知识,请关注微信公众号“51学代码”
© 版权声明
THE END
- 最新
- 最热
只看作者