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 相关文章推荐
慎用 somefunction.prototype 分析
Jun 02 Javascript
jquery 实现checkbox全选,反选,全不选等功能代码(奇数)
Oct 24 Javascript
JavaScript实现的石头剪刀布游戏源码分享
Aug 22 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
Mar 11 Javascript
实现React单页应用的方法详解
Aug 02 Javascript
基于d3.js实现实时刷新的折线图
Aug 03 Javascript
一个极为简单的requirejs实现方法
Oct 20 Javascript
详解AngularJS ui-sref的简单使用
Apr 24 Javascript
js学习总结_选项卡封装(实例讲解)
Jul 13 Javascript
JavaScript实现跟随滚动缓冲运动广告框
Jul 15 Javascript
微信小程序对图片进行canvas压缩的方法示例详解
Nov 12 Javascript
js实现扫雷源代码
Nov 27 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
为查询结果建立向后/向前按钮
2006/10/09 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
完美解决PHP中的Cannot modify header information 问题
2013/08/12 PHP
php使用curl模拟登录后采集页面的例子
2013/11/04 PHP
php生成RSS订阅的方法
2015/02/13 PHP
PHP的命令行命令使用指南
2015/08/18 PHP
win7安装php框架Yii的方法
2016/01/25 PHP
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
php简单统计中文个数的方法
2016/09/30 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
豆瓣网的jquery代码实例
2008/06/15 Javascript
JQuery动态给table添加、删除行 改进版
2011/01/19 Javascript
node.js中的fs.readFile方法使用说明
2014/12/15 Javascript
js实现a标签超链接提交form表单的方法
2015/06/24 Javascript
jQuery实现带滑动条的菜单效果代码
2015/08/26 Javascript
Javascript中apply、call、bind的巧妙使用
2016/08/18 Javascript
AngularJs bootstrap搭载前台框架——基础页面
2016/09/01 Javascript
微信小程序 radio单选框组件详解及实例代码
2017/01/10 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
详解webpack+vue-cli项目打包技巧
2017/06/17 Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
2017/07/05 Javascript
vue iview组件表格 render函数的使用方法详解
2018/03/15 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
了解JavaScript中let语句
2019/05/30 Javascript
layui表单验证select下拉框实现验证的方法
2019/09/05 Javascript
python正常时间和unix时间戳相互转换的方法
2015/04/23 Python
Python实现的序列化和反序列化二叉树算法示例
2019/03/02 Python
Python 实现劳拉游戏的实例代码(四连环、重力四子棋)
2021/03/03 Python
HTML5的结构和语义(1):前言
2008/10/17 HTML / CSS
Chinti & Parker官网:奢华羊绒女装和创新针织设计
2021/01/01 全球购物
入学生会自荐书范文
2014/02/05 职场文书
六查六看剖析材料
2014/02/15 职场文书
三好学生演讲稿范文
2014/04/26 职场文书
新品发布会策划方案
2014/06/08 职场文书
成本会计实训报告
2014/11/05 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python