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 12 Javascript
javascript中的变量是传值还是传址的?
Apr 19 Javascript
jquery实现心算练习代码
Dec 06 Javascript
JavaScript中URL编码函数代码
Jan 11 Javascript
jquery.blockUI.js上传滚动等待效果实现思路及代码
Mar 18 Javascript
js弹出div并显示遮罩层
Feb 12 Javascript
js简单实现点击左右运动的方法
Apr 10 Javascript
基于Jquery和html5实现炫酷的3D焦点图动画
Mar 02 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
Aug 29 jQuery
详解通过源码解析Node.js中cluster模块的主要功能实现
May 16 Javascript
解决layui-open关闭自身窗口的问题
Sep 10 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
Apr 03 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简单图像创建入门实例
2015/06/10 PHP
PHP动态生成指定大小随机图片的方法
2016/03/25 PHP
PHP使用xpath解析XML的方法详解
2017/05/20 PHP
JavaScript 轻松搞定快捷留言功能 只需一行代码
2010/04/01 Javascript
javascript温习的一些笔记 基础常用知识小结
2011/06/22 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
详解JS中的快速排序与冒泡
2017/01/10 Javascript
JavaScript中Object基础内部方法图
2018/02/05 Javascript
Bootstrap实现可折叠分组侧边导航菜单
2018/03/07 Javascript
node打造微信个人号机器人的方法示例
2018/04/26 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
Vue编程式跳转的实例代码详解
2019/07/10 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
JavaScript Canvas编写炫彩的网页时钟
2019/10/16 Javascript
浅谈React中组件逻辑复用的那些事儿
2020/05/21 Javascript
vue 实现锚点功能操作
2020/08/10 Javascript
vscode 调试 node.js的方法步骤
2020/09/15 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
浅谈python连续赋值可能引发的错误
2018/11/10 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
Python 读取用户指令和格式化打印实现解析
2019/09/02 Python
python 模拟创建seafile 目录操作示例
2019/09/26 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
Python处理PDF与CDF实例
2020/02/26 Python
详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
2016/12/15 HTML / CSS
美国名牌太阳镜折扣网站:Eyedictive
2017/05/15 全球购物
伦敦所有西区剧院演出官方票务代理:Theatre Tickets Direct
2017/05/26 全球购物
雷曼兄弟的五金店:Lehman’s Hardware Store
2019/04/10 全球购物
农民工创业典型事迹
2014/01/25 职场文书
药剂专业自荐信范文
2014/04/16 职场文书
国庆横幅标语
2014/10/08 职场文书
上课说话检讨书500字
2014/11/01 职场文书
2014年党建工作汇报材料
2014/11/02 职场文书
新生开学寄语大全
2015/05/28 职场文书