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


Posted in Javascript onOctober 01, 2020

键盘事件

一般处理键盘按键事件我们采用这样的方式

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;

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

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属性。

Javascript 相关文章推荐
JavaScript让IE浏览器event对象符合W3C DOM标准
Nov 24 Javascript
jquery一般方法介绍 入门参考
Jun 21 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
May 19 Javascript
JavaScript使用yield模拟多线程的方法
Mar 19 Javascript
jqTransform美化表单
Oct 10 Javascript
JavaScript实现广告弹窗效果
Aug 09 Javascript
微信小程序 Audio API详解及实例代码
Sep 30 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
Mar 04 Javascript
JS实现向iframe中表单传值的方法
Mar 24 Javascript
React Native 集成jpush-react-native的示例代码
Aug 16 Javascript
用Node编写RESTful API接口的示例代码
Jul 04 Javascript
Vue指令v-for遍历输出JavaScript数组及json对象的常见方式小结
Feb 11 Javascript
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
Dec 01 #Javascript
在Vue里如何把网页的数据导出到Excel的方法
Sep 30 #Javascript
jQuery实现二级导航菜单的示例
Sep 30 #jQuery
javascript canvas封装动态时钟
Sep 30 #Javascript
VUE Elemen-ui之穿梭框使用方法详解
Jan 19 #Javascript
Vue实现穿梭框效果
Sep 30 #Javascript
原生js实现表格翻页和跳转
Sep 29 #Javascript
You might like
PHP JSON 数据解析代码
2010/05/26 PHP
PHP开发中四种查询返回结果分析
2011/01/02 PHP
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
2011/04/17 PHP
使用 PHPMAILER 发送邮件实例应用
2012/11/07 PHP
PHP延迟静态绑定示例分享
2014/06/22 PHP
IE和Firefox下javascript的兼容写法小结
2008/12/10 Javascript
jQuery页面滚动浮动层智能定位实例代码
2011/08/23 Javascript
JavaScript回调(callback)函数概念自我理解及示例
2013/07/04 Javascript
利用AJAX实现WordPress中的文章列表及评论的分页功能
2016/05/17 Javascript
three.js中3D视野的缩放实现代码
2017/11/16 Javascript
微信小程序使用车牌号输入法的示例代码
2019/08/20 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
vue中的计算属性和侦听属性
2020/11/06 Javascript
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
python 实现堆排序算法代码
2012/06/05 Python
详解Python中的条件判断语句
2015/05/14 Python
python中list常用操作实例详解
2015/06/03 Python
Python素数检测实例分析
2015/06/15 Python
深入理解NumPy简明教程---数组1
2016/12/17 Python
Python父目录、子目录的相互调用方法
2019/02/16 Python
Python利用命名空间解析XML文档
2020/08/10 Python
python openpyxl模块的使用详解
2021/02/25 Python
24个canvas基础知识小结
2014/12/17 HTML / CSS
HTML块级标签汇总(小篇)
2016/07/13 HTML / CSS
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
印尼综合在线预订网站:Tiket.com(机票、酒店、火车、租车和娱乐)
2018/10/11 全球购物
八年级音乐教学反思
2014/01/09 职场文书
自行车租赁公司创业计划书
2014/01/28 职场文书
个人对照检查材料
2014/02/12 职场文书
海飞丝的广告词
2014/03/20 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
职场干货:简历中的自我评价应该这样写!
2019/05/06 职场文书
管理者日常工作必备:22条企业管理流程模板!
2019/07/12 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python