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 相关文章推荐
jQuery实现图片放大预览实现原理及代码
Sep 12 Javascript
javascript实现避免页面按钮重复提交
Jan 08 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
Jul 29 Javascript
JavaScript必知必会(七)js对象继承
Jun 08 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
Nov 30 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
Jan 23 Javascript
如何获取元素的最终background-color
Feb 06 Javascript
js中Number数字数值运算后值不对的解决方法
Feb 28 Javascript
div中文字内容溢出常见的解决方法
Mar 16 Javascript
vantUI 获得piker选中值的自定义ID操作
Nov 04 Javascript
vue中父子组件的参数传递和应用示例
Jan 04 Vue.js
vue实现登陆页面开发实践
May 30 Vue.js
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下获取上个月、下个月、本月的日期(strtotime,date)
2014/02/02 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
php自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
php和js实现根据子网掩码和ip计算子网功能示例
2019/11/09 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
JS 两个字符串时间的天数差计算
2013/08/25 Javascript
js数组操作学习总结
2013/11/04 Javascript
javascript处理a标签超链接默认事件的方法
2015/06/29 Javascript
js判断子窗体是否关闭的方法
2015/08/11 Javascript
深入解析JavaScript的闭包机制
2015/10/20 Javascript
js中使用使用原型(prototype)定义方法的好处详解
2016/07/04 Javascript
浅析jQuery操作select控件的取值和设值
2016/12/07 Javascript
微信小程序页面滑动屏幕加载数据效果
2020/11/16 Javascript
JS中用EL表达式获取上下文参数值的方法
2018/03/28 Javascript
[50:50]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.20
2020/12/23 DOTA
Python中使用语句导入模块或包的机制研究
2015/03/30 Python
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
浅谈使用Python内置函数getattr实现分发模式
2018/01/22 Python
Python+PIL实现支付宝AR红包
2018/02/09 Python
浅析Python pandas模块输出每行中间省略号问题
2018/07/03 Python
python中对数据进行各种排序的方法
2019/07/02 Python
python pandas时序处理相关功能详解
2019/07/03 Python
web字体加载方案优化小结
2019/11/29 HTML / CSS
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
Solid & Striped官网:美国泳装品牌
2019/06/19 全球购物
党的群众路线教育实践活动批评与自我批评
2014/02/16 职场文书
中国入世承诺
2014/04/01 职场文书
大学生就业策划书范文
2014/04/04 职场文书
团代会宣传工作方案
2014/05/08 职场文书
离职信范文
2015/06/23 职场文书
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS
python数据可视化JupyterLab实用扩展程序Mito
2021/11/20 Python
Python使用pyecharts控件绘制图表
2022/06/05 Python
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技