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 相关文章推荐
一个对于js this关键字的问题
Jan 09 Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
Sep 05 Javascript
jquery数组封装使用方法分享(jquery数组遍历)
Mar 25 Javascript
小结Node.js中非阻塞IO和事件循环
Sep 18 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
Apr 18 Javascript
新手学习前端之js模仿淘宝主页网站
Oct 31 Javascript
整理关于Bootstrap列表组的慕课笔记
Mar 29 Javascript
Javascript中八种遍历方法的执行速度深度对比
Apr 25 Javascript
Vue.js 实现数据展示全部和收起功能
Sep 05 Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
Sep 25 Javascript
详解vuex 渐进式教程实例代码
Nov 27 Javascript
JavaScript实现滑动门效果
Jan 18 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
如何在smarty中增加类似foreach的功能自动加载数据
2013/06/26 PHP
ThinkPHP实现ajax仿官网搜索功能实例
2014/12/02 PHP
判断脚本加载是否完成的方法
2009/05/26 Javascript
理解Javascript_08_函数对象
2010/10/15 Javascript
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
封装好的一个万能检测表单的方法
2015/01/21 Javascript
JavaScript实现简单图片翻转的方法
2015/04/17 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
2016/01/26 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
一系列Bootstrap导航条使用方法分享
2016/04/29 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
JavaScript输入框字数实时统计更新
2017/06/17 Javascript
JS设计模式之状态模式概念与用法分析
2018/02/05 Javascript
vue :src 文件路径错误问题的解决方法
2018/05/15 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
2020/07/13 Javascript
Python中selenium实现文件上传所有方法整理总结
2017/04/01 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
python中将一个全部为int的list 转化为str的list方法
2018/04/09 Python
PIL图像处理模块paste方法简单使用详解
2019/07/17 Python
解决Pycharm 导入其他文件夹源码的2种方法
2020/02/12 Python
Pycharm学生免费专业版安装教程的方法步骤
2020/09/24 Python
python 实时调取摄像头的示例代码
2020/11/25 Python
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
2014银行授权委托书样本
2014/10/04 职场文书
迟到检讨书
2015/01/26 职场文书
晚会闭幕词
2015/01/28 职场文书
介绍信如何写
2015/01/31 职场文书
车间质检员岗位职责
2015/04/08 职场文书
判断Python中的Nonetype类型
2021/05/25 Python
MySQL中EXPLAIN语句及用法
2022/05/20 MySQL
python如何利用cv2.rectangle()绘制矩形框
2022/12/24 Python