Vue 监听刷新 切屏

Vue
监听刷新 切屏

mounted() {

//监听页面离开前
window.addEventListener(“beforeunload”, (e) => {
this.beforeunloadHandler(e);
});
//切屏
document.addEventListener(“visibilitychange”, this.monitor);
},
destroyed() {
alert(“232”);
window.removeEventListener(“beforeunload”, (e) => {
this.beforeunloadHandler(e);
});
document.addEventListener(“visibilitychange”, this.monitor);
},
methods: {
beforeunloadHandler(e) {
e = e || window.event;
if (e) {
e.returnValue = “您是否确认离开此页面-您输入的数据可能不会被保存”;
}
return “您是否确认离开此页面-您输入的数据可能不会被保存”;
},
monitor(e) {
let isExist = e.target.visibilityState;
console.log(isExist);
if (isExist === “visible”) {
console.log(new Date().toLocaleString(), 您已进入页面!);
} else {
console.log(new Date().toLocaleString(), 您已离开页面!);
}
},

Vue 2中,页面监听通常是指当用户切换到其他应用程序或者屏幕关闭后,你想让应用保持某种状态或者触发某些操作。Vue本身并不直接提供监听的功能,但是你可以结合一些第三方库或者利用浏览器提供的API来实现。 一种常见的做法是使用`IntersectionObserver`,它是一个现代浏览器支持的API,可以监控元素是否进入视口范围。首先安装`vue-popperjs`这个插件,它包含了Popper.js库,可以帮助创建动态弹出层: ```bash npm install vue-popperjs ``` 然后在组件中使用`IntersectionObserver`,例如: ```html <template> <div ref="popup" /> </template> <script> import { Popper } from 'popper.js'; export default { mounted() { const observer = new IntersectionObserver((entries) => { if (entries[0].isIntersecting) { // 屏幕回到或接近页面时,执行相关操作,比如显示提示信息或动画 this.showReminder(); } else { // 如果离开视口,隐藏或清除提示 this.hideReminder(); } }); observer.observe(this.$refs.popup); }, beforeDestroy() { // 移除观察者,防止内存泄漏 this.observer.unobserve(this.$refs.popup); }, methods: { showReminder() { // 设置提醒逻辑 }, hideReminder() { // 隐藏或清除提醒 }, }, }; </script> ``` 请注意,不是所有浏览器都支持`IntersectionObserver`,你需要做兼容处理。另外,如果你需要跨平台的支持,可以考虑使用`vue-i18n-router`配合路由守卫来实现更通用的事件监听
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值