electron禁用页面缩放事件
本文转载自:https://newsn.net/
本文中,苏南大叔讲述个很现实的electron
的小问题,那就是electron
会响应一些浏览器事件的问题。虽然,在网页的角度上说,这些事件是无法避免的。但是对于electron
来说,这些事件的响应,显然是不妥当的。因为毕竟electron
对标的可是原生的客户端,如果客户端去响应一些浏览器事件的话,这个用户体验会变得异常诡异。
比如,本文中讲述的electron
页面缩放快捷键事件。那么,为了给electron
更好的客户体验,这些快捷键事件,究竟将怎么屏蔽呢?
本文测试环境:mac
,[email protected]
。
前言
有些读者反馈说,可以使用参数--disable-pinch
来解决这个问题,看起来确实相当便利。但是,苏南大叔尝试过之后,觉得可能electron
可能还暂时没有支持这个参数,而且官方的参数列表里面,也没有这个参数的相关描述。苏南大叔试了好几个electron
版本,都不能通过下面的代码解决这个问题。那么,您也可以试试看。如果可以,欢迎留言告知。谢谢。
var app = require('electron')app.commandLine.appendSwitch('disable-pinch');
electron
官方的参数列表:
禁用滚轮放大事件/双指缩放事件
本模块要禁用的事件包括:mac
的双指缩放事件,win
的ctrl+滚轮
缩放事件。代码如下:
document.addEventListener('mousewheel', (ev) => {if(ev.ctrlKey){
ev.preventDefault();
return false;
}
});
这段代码,仔细想想的话,其实也是蛮有意思的:
禁用 ctrl + 加减号事件
经过苏南大叔测试,上述代码中,并没有屏蔽另外的网页缩放快捷键:
那么,这些快捷键的屏蔽方式是什么样的呢?
这里有个小插曲啊,就是加号的键盘事件,实际上检测出来的是等号,而减号的键盘事件,检测出来的是仍然是减号。也就是说,这里,代码方面和人们的认知上,可能出现了偏差。
在这段代码中,没有拦截mousewheel
事件,而是拦截了keydown
事件。因为,在苏南大叔的测试中,只触发了keydown
事件。没有触发mousewheel
事件。
特别说明
本文代码在electron
3.0.5中测试通过,但是,理论上来说,也可以用于其他普通的网页。并不必须局限在electron
环境中,如果用于普通网页的话,请多多注意,各种兼容浏览器的情况。毕竟,electron
中仅仅是最好用的chrome
内核。
以上是 electron禁用页面缩放事件 的全部内容, 来源链接: utcz.com/a/119149.html