如图所示,当浏览器内部加载了新的iframe时,这个位置的小图标会呈现“刷新”样式,我们的应用经常会出现这个情况,为了给用户一个显眼的提示,我们想要检测到这个事件,然后自己在页面中给用户做一个刷新提示。
请问,怎么拿到这个事件啊?
用 beforeunload 这个事件
https://developer.mozilla.org...
window.addEventListener('beforeunload', function(e) { var confirmationMessage = '确定退出吗?'; setTimeout(() => { console.log('我没有退出哦'); // callback }, 0); (e || window.event).returnValue = confirmationMessage; // Gecko and Trident return confirmationMessage; // Gecko and WebKit });
试试 onbeforeunload?
<iframe onload="onload()" />
自定义事件把,自己操作的时候触发一下
iframe没有load事件吗?
从请求下手,监控每个请求的success,所有请求都返回后再让页面可操作
MutationObserver, 也就是老版的mutation events
, 可以监听一个node的变化, 比如你可以设定监听iframe的src
属性, 然后如果有变化就显示刷新提示, 然后可以通过DOMFrameContentLoaded
来检测是否加载完成.
FYI: MDN 关于 MutationObserver 的介绍