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事件委托用法分析
Jan 24 Javascript
jQuery+CSS3实现树叶飘落特效
Feb 01 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
Dec 06 Javascript
ES6生成器用法实例分析
Apr 10 Javascript
将angular-ui的分页组件封装成指令的方法详解
May 10 Javascript
ES6中字符串string常用的新增方法小结
Nov 07 Javascript
security.js实现的RSA加密功能示例
Jun 06 Javascript
微信小程序引用iconfont图标的方法
Oct 22 Javascript
setTimeout与setInterval的区别浅析
Mar 23 Javascript
浅谈Node新版本13.2.0正式支持ES Modules特性
Nov 25 Javascript
阿望教你用vue写扫雷小游戏
Jan 20 Javascript
JS中循环遍历数组的四种方式总结
Jan 23 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
星际玩家的三大定律
2020/03/04 星际争霸
不用iconv库的gb2312与utf-8的互换函数
2006/10/09 PHP
用PHP读取超大文件的实例代码
2012/04/01 PHP
ThinkPHP的I方法使用详解
2014/06/18 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(一)
2014/06/23 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
2014/10/14 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
2014/12/22 PHP
php实现Mongodb自定义方式生成自增ID的方法
2015/03/23 PHP
php获取json数据所有的节点路径
2015/05/17 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
对YUI扩展的Gird组件 Part-1
2007/03/10 Javascript
jquery select下拉框操作的一些说明
2010/04/02 Javascript
使用JS CSS去除IE链接虚线框的三种方法
2013/11/14 Javascript
基于javascript实现动态时钟效果
2020/08/18 Javascript
详解Matlab中 sort 函数用法
2016/03/20 Javascript
JavaScript中instanceof运算符的使用示例
2016/06/08 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
2016/08/01 Javascript
在layer弹层layer.prompt中,修改placeholder的实现方法
2019/09/27 Javascript
js实现带箭头的进度流程
2020/03/26 Javascript
python编写Logistic逻辑回归
2020/12/30 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
Django Admin后台添加数据库视图过程解析
2020/04/01 Python
在Mac中配置Python虚拟环境过程解析
2020/06/22 Python
用css3实现当鼠标移进去时当前亮其他变灰效果
2014/04/08 HTML / CSS
面向中国市场的在线海淘美妆零售网站:Beauty House美丽屋
2021/03/02 全球购物
四风问题自查报告剖析材料
2014/02/08 职场文书
《最可爱的人》教学反思
2014/02/14 职场文书
《守株待兔》教学反思
2014/03/01 职场文书
球队口号
2014/06/18 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
《祁黄羊》教学反思
2016/02/20 职场文书
敬业奉献模范事迹材料(2016精选版)
2016/02/26 职场文书
Nginx快速入门教程
2021/03/31 Servers
html5中sharedWorker实现多页面通信的示例代码
2021/05/07 Javascript
CSS3实现列表无限滚动/轮播效果
2021/06/23 HTML / CSS
Python如何使用循环结构和分支结构
2022/04/13 Python