如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

本文继续说明,electron中的页面刷新事件。在调试过程中,这个页面刷新功能(快捷键)还是很好用的。但是,一旦进入生产模式后,这个页面刷新功能,对于用户来说,就是比较诡异的了。对于用户来说,普通未加处理过的electron是不会响应f5事件的。但是会响应ctrl+r/command+r事件。所以,这两个事件,是苏南大叔在本文中,特别强调来屏蔽的。

electron 如何禁用页面刷新事件? - electron-no-refresh
electron 如何禁用页面刷新事件?(图2-1)

本文在macwin环境下,electron3.0.5中测试通过,代码是放在在渲染进程中的。

原理描述

原理上很简单,监控onkeydown事件,视情况return falsectrl的标志是:event.ctrlKey,而command的标志是:event.metaKey,当然ctrl一般是出现在win系统中,而command就是mac系统了。

electron 如何禁用页面刷新事件? - electron-refresh
electron 如何禁用页面刷新事件?(图2-2)

那么,渲染进程代码如下:

newsn.net:这里是【评论】可见内容

这个代码,也是不能监控F5页面刷新的。但是electron天生就屏蔽了F5事件,所以,这里并不用担心。

代码说明

本文的这个源码,是监控的onkeydown事件。和网上流传的适用于网页的onbeforeunload事件,是不一致的。网上流传的onbeforeunload是监控页面刷新或者关闭事件。但是,对应代码在electron中,并不能运行。但是,理论上来说,本文的代码可以用于网页,但是网页版的onbeforeunload版本,不能适用于electron,这个是苏南大叔说的。

下面的是网上流传的onbeforeunload事件,区分刷新或关闭事件的源码。大家可以自行测试。

window.onbeforeunload = function() {   
    var n = window.event.screenX - window.screenLeft;   
    var b = n > document.documentElement.scrollWidth-20;   
    if(b && window.event.clientY < 0 || window.event.altKey){   
        alert("这是一个关闭操作而非刷新");   
        window.event.returnValue = ""; //此处放你想要操作的代码 
    }else{
        alert("这是一个刷新操作而非关闭");   
    }
}

相关链接

总结

其实,思路都比较简单,就是监控页面的onkeydown事件,然后检测其code或者ctrlKey或者metakey,就可以写出对应的代码了哦。

更多electron相关源码,请参见下面的链接:

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   electron

本站的忠实读者小伙伴,正在阅读下面这些文章:

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
欢迎指正文字或逻辑错误,将会择优在文末列出您的信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

苏南大叔需要你的支持

感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!