前段时间由于工作需要,需要实现禁止使用Ctrl/Command + -/+, 以及Ctrl/Command + 鼠标滚动等方式缩放浏览器:

 1         $(document).keydown(function (event) {
 2           //event.metaKey mac的command键
 3           //mac下chrome: - 189, + 187 firefox: - 173, + 61,
 4           //数字键盘: + 107, - 109
 5           if ((event.ctrlKey === true || event.metaKey === true)&&
 6           (event.which === 189 || event.which === 187
 7           || event.which === 173 || event.which === 61
 8           || event.which === 107  || event.which === 109))
 9           {
10             event.preventDefault();
11           }
12         });
13         $(window).bind('mousewheel DOMMouseScroll', function (event) {
14           if (event.ctrlKey === true || event.metaKey) {
15              event.preventDefault();
16           }
17         });

然而最近升级了chrome浏览器到73,再运行项目的时候突然报错:

查看了相关说明,发现chrome73为了减少用户触摸屏幕后更新显示所需的时间,将在文档级目标(窗口)上注册的wheel/mousewheel事件侦听器默认为passive(即:{passive: true})。而这样的设置将忽略此类侦听器内部的preventDefault()调用,从而使chrome下的禁止功能失效。目前先根据官方说明做了修改:

window.addEventListener('mousewheel', function(event){if (event.ctrlKey === true || event.metaKey) {event.preventDefault();}
},{ passive: false});//firefoxwindow.addEventListener('DOMMouseScroll', function(event){if (event.ctrlKey === true || event.metaKey) {event.preventDefault();}
},{ passive: false});

虽然目前firefox的相关更改还在考虑中,但为了防止出现相同问题,还是为ff下的事件显示设置了{passive: true}。

暂时解决了问题,记录一下待日后优化。

相关说明:

https://www.chromestatus.com/features/6662647093133312

https://developers.google.com/web/updates/2017/01/scrolling-intervention

https://github.com/WICG/interventions/issues/64

转载于:https://www.cnblogs.com/xiaobaiou/p/10731062.html

关于js禁止浏览器缩放相关推荐

  1. PC端js禁止浏览器缩放

    在网上找了很多资料,多多少少都有一些问题,现在重新整理一下. 1.网上的资料大多都是按照windows的devicePixelRatio来判断是否缩放的,这个判断不是很准确,因为在mac下,默认的de ...

  2. JS禁止浏览器打开控制台或查看源代码

    分享知识  传递快乐 JS禁止浏览器打开控制台或查看源代码 在做支付的时候为了保证提交参数的安全.以及为了保证重定向时地址不被查看和修改,必须要禁用浏览器的控制台或源码查看功能,以保证参数及地址的安全 ...

  3. js禁止浏览器后退按钮

    js禁止浏览器后退按钮 1.js //禁止浏览器后退按钮 function BanBack(ele) {//禁止浏览器后退按钮if (window.history && window. ...

  4. vue 禁止显示本网页由、、_【VUE/JS】vue和js禁止浏览器页面后退

    1.vue 禁止浏览器后退 需求是:需要某个路由不能通过浏览器返回,同时不影响相互之间的切换 整理一下解决方法 和 使用方法: 1.在路由配置中给这个路由添加meta信息,比如: { path: '/ ...

  5. 防止html网页被f12抓取,JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码...

    前言 很多站长为了仿止别人仿制或扒下自己的网页,都会选择使用禁止浏览器右键查看元素或F12审查元素,一旦查看元素浏览器页面就会自动关闭,下面话不多说了,来一起看看详细的介绍吧. 注:该代码不兼容火狐浏 ...

  6. JS禁止浏览器后退键

    背景说明: 今天项目测试中,同事发现一个Bug,当键盘敲下后退键(Backspace)后,浏览器自动后退,不符合需求,故建议禁止浏览器后退键. 提出需求: 当键盘敲下后退键(Backspace)后 1 ...

  7. js禁止浏览器后退操作

    mounted() {//禁止浏览器的后退操作history.pushState(null, null, document.URL);window.addEventListener('popstate ...

  8. html5禁止浏览器缩放网页大小 (实用)

    延伸阅读:meta标签viewport详解 html5默认允许用户缩放页面,如果需要禁止缩放,我们需要将user-scalabel=0设置下,具体代码如下: <meta name="v ...

  9. js禁止浏览器保存用户密码

    Step1: 在html中,除了要用的密码框以外,额外添加一个密码框,设置为隐藏 <input type = "password" name="myPassword ...

最新文章

  1. 聊一聊-JAVA 泛型中的通配符 T,E,K,V,?
  2. iOS SDK:iOS调试技巧
  3. scala学习笔记-集合操作(15)
  4. python工作方法_用python开始一天工作
  5. java的多线程访问共享变量_java多线程通信之共享变量
  6. Elasticsearch 实现自定义排序插件(转载)
  7. linux mate桌面主题下载_5个适用于Linux的最佳图标主题
  8. java 生成er图标_设计数据库 ER 图太麻烦?不妨试试这两款工具,自动生成数据库 ER 图!!!...
  9. 软考高项-项目知识管理体系
  10. 夏普Sharp MX-C3581R 一体机驱动
  11. Apache服务器与Tomcat服务器的区别
  12. 性能测试实战(二):性能测试基础
  13. in field list is ambiguous 解决方法
  14. 爬虫——bs4测试——test.html
  15. 打印U盘文件计算机有记录吗,技术员教你win10系统查看打印机打印历史记录的问题...
  16. #1.5与其它理论关系
  17. Sklearn——决策树可视化
  18. 火狐浏览器旧版本(可安装firebug、Xpath插件等)
  19. MacBook如何快速添加指纹!
  20. Vulnhub渗透测试 DR4G0N B4LL: 1

热门文章

  1. ubuntu安装mysql 密码忘了怎么办_Ubuntu安装mysql14.14,查看默认密码,重置密码
  2. jQuery遍历之next()、nextAll()方法使用实例
  3. 给GridView中的buttonField添加一个删除确认功能
  4. 嵌入式Linux之我行——ARM MMU工作原理剖析
  5. poj2516 最小费用最大流
  6. go语言的main函数
  7. socket实现进程间通信
  8. Node.js的3m安装法
  9. java:final,finally,finalize区别
  10. JAVA代码实现多级树结构封装对象