forked from natuka/web.puabadge.com
代码提交
This commit is contained in:
1 parent
c30768d605
commit
b52dcc0842
14 files changed
+3997
-38
No files matched your search
+29
-8
@@ -1,4 +1,4 @@
|
||||
import { createApp, onMounted } from 'vue'
|
||||
import { createApp } from 'vue'
|
||||
import { createPinia } from 'pinia'
|
||||
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
|
||||
import { createRouterScroller } from 'vue-router-better-scroller'
|
||||
@@ -105,13 +105,34 @@ app.use(createRouterScroller({
|
||||
},
|
||||
}))
|
||||
|
||||
onMounted(() => {
|
||||
window.addEventListener('beforeunload', handleBeforeUnload);
|
||||
});
|
||||
|
||||
function handleBeforeUnload(_event: BeforeUnloadEvent) {
|
||||
localStorage.remove('code')
|
||||
localStorage.remove('trialCode')
|
||||
// 处理页面隐藏事件(可以区分刷新和关闭)
|
||||
function handlePageHide(event: PageTransitionEvent) {
|
||||
// event.persisted 为 true 表示页面被缓存(刷新),保留 code
|
||||
// event.persisted 为 false 表示页面未被缓存(关闭),清除 code
|
||||
if (!event.persisted) {
|
||||
// 页面关闭(非刷新),清除 code 和 userId,避免下一个用户使用上一个用户的 code
|
||||
localStorage.remove('code')
|
||||
localStorage.remove('userId')
|
||||
console.log('页面关闭,已清除 code 和 userId')
|
||||
} else {
|
||||
// 页面刷新(persisted === true),保留 code
|
||||
console.log('页面刷新,保留 code')
|
||||
}
|
||||
}
|
||||
|
||||
// 处理页面卸载事件(作为备用方案,某些浏览器可能不支持 pagehide)
|
||||
function handleBeforeUnload(_event: BeforeUnloadEvent) {
|
||||
// 注意:beforeunload 无法区分刷新和关闭
|
||||
// 主要依赖 pagehide 事件来处理
|
||||
// 这里不做任何操作,避免误清除刷新时的 code
|
||||
}
|
||||
|
||||
// 在应用挂载前设置事件监听器
|
||||
// 优先使用 pagehide 事件(可以区分刷新和关闭)
|
||||
// 在支持的浏览器中,这是最可靠的方法
|
||||
window.addEventListener('pagehide', handlePageHide)
|
||||
|
||||
// 监听 beforeunload 作为备用(某些旧浏览器可能不支持 pagehide)
|
||||
window.addEventListener('beforeunload', handleBeforeUnload)
|
||||
|
||||
app.mount('#app')
|
||||
Reference in new issue
Block a user