js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
键盘事件

一般处理键盘按键事件我们采用这样的方式
document.onkeydown=function (event) {
//检测按下哪个键,作相应处理
};
event为键盘事件,对于chrome,firefox,IE(Edge),IE10,IE9均能支持function自带的e,而ie8以下只能识别windows.event,所以一般兼容写法为:event=event||window.event。获取按键码一般是event.keyCode,这个对各大浏览器都是兼容的。
document.onkeydown=function (event) {
event=event||window.event;
var key=event.keyCode;
//检测按下哪个键,作相应处理
if(key==...){
}
};
屏蔽浏览器默认事件的方法大致有三种:
1)event.preventDefault()
2)event.returnValue=false;
3)return false;
firefox的特殊方式支持是指,firefox这里一个比较坑爹的地方是,firefox需增加一个延迟才能生效,不然仍然会跳出浏览器的保存当前页面窗口,如下:
document.onkeydown=function (event) {
//判断按键
var key=event.keyCode;
if(key== 83 && e.ctrlKey){
/*延迟,兼容FF浏览器 */
setTimeout(function(){
alert('ctrl+s');
},1);
event.preventDefault();//或者是 return false;
}
而IE10,IE9,IE8以下对于event.returnValue=false的特殊方式支持是指键盘事件event必须为window.event时ctrl+s的默认事件才能屏蔽,在event=event||window.event的兼容写法中,IE8及以下的形参event是空,所以会取值为window.event,而IE10,IE9的function形参event是有效的,所以取值直接为event,因此IE10,IE9在写法为event=event||window.event时会屏蔽ctrl+s失效。
假如要让所有IE版本能够屏蔽Ctrl+S,event取值只能是window.event了。由于window.event没有方法preventDefautl,所以屏蔽默认事件方法只能用return false;
兼容IE、firefox、chrome,屏蔽Ctrl+s的写法为
document.onkeydown=function (e) {
e=window.event||e;
if(key== 83 && e.ctrlKey){
/*延迟,兼容FF浏览器 */
setTimeout(function(){
alert('www.qdxw.net');
},1);
return false;
}
};
屏蔽鼠标右键的写法
window.document.oncontextmenu = function (){
alert('亲,你想干嘛,不要做坏事哦');
return false;
}
如果当前页面里含有iframe 那么iframe里的右键依然可用
屏蔽页面里iframe里的右键写法
document.getElementById('web').onload = function(){
window.document.getElementById('web').contentWindow.document.oncontextmenu = function(){
alert('www.qdxw.net');
return false;
}
}
web是iframe标签的ID属性。
代码知识SEO上一篇 : JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
下一篇 : java唯一字符串ID生成方案详解
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!