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 程序编码规范
Nov 23 Javascript
JavaScript实现的字符串replaceAll函数代码分享
Apr 02 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
Nov 23 Javascript
Asp.Net之JS生成分页条的方法
Nov 23 Javascript
Ajax验证用户名或昵称是否已被注册
Apr 05 Javascript
详解Vue 动态添加模板的几种方法
Apr 25 Javascript
vue中实现滚动加载更多的示例
Nov 08 Javascript
详解在React里使用"Vuex"
Apr 02 Javascript
使用FormData实现上传多个文件
Dec 04 Javascript
小程序扫描普通链接二维码跳转小程序指定界面方法
May 07 Javascript
Webpack 4如何动态切割JS注入文件名详解
Jul 09 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
Mar 06 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
linux系统上支持php的 iconv()函数的方法
2011/10/01 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
destoon会员注册提示“数据校验失败(2)”解决方法
2014/06/21 PHP
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
2017/01/30 PHP
PHP实现动态获取函数参数的方法示例
2018/04/02 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
javascript 文档的编码问题解决
2009/03/01 Javascript
js中单引号与双引号冲突问题解决方法
2013/10/04 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
2016/09/05 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
原生JS+HTML5实现跟随鼠标一起流动的粒子动画效果
2018/05/03 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
2020/01/16 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
2020/08/31 Javascript
python BeautifulSoup使用方法详解
2013/11/21 Python
在Django的模型中添加自定义方法的示例
2015/07/21 Python
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
2015/10/18 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
python set内置函数的具体使用
2019/07/02 Python
python在新的图片窗口显示图片(图像)的方法
2019/07/11 Python
学习和使用python的13个理由
2019/07/30 Python
Python叠加矩形框图层2种方法及效果
2020/06/18 Python
python如何调用java类
2020/07/05 Python
pytorch随机采样操作SubsetRandomSampler()
2020/07/07 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
2020/12/07 Python
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
加拿大专业美发产品购物网站:Chatters
2021/02/28 全球购物
房地产销售计划书
2014/01/10 职场文书
新学期家长寄语
2014/01/19 职场文书
观后感开头
2015/06/19 职场文书
新郎新娘致辞
2015/07/31 职场文书
超市啤酒狂欢夜策划方案范文!
2019/07/03 职场文书
Java实现多文件上传功能
2021/06/30 Java/Android