Bladeren bron

fix: 全局a标签调整为新开页面

周玉环 1 dag geleden
bovenliggende
commit
0d2759105e
2 gewijzigde bestanden met toevoegingen van 33 en 15 verwijderingen
  1. 22 4
      xinkeaboard-promotion-portal/src/App.vue
  2. 11 11
      xinkeaboard-promotion-portal/src/main.ts

+ 22 - 4
xinkeaboard-promotion-portal/src/App.vue

@@ -1,11 +1,29 @@
 <template>
-  <router-view :key="route.fullPath"></router-view>
+  <router-view v-slot="{ Component }">
+    <keep-alive include="Home,Record">
+      <component :is="Component" />
+    </keep-alive>
+  </router-view>
 </template>
 
 <script setup lang="ts">
-import { useRoute } from 'vue-router';
-// 这里写你的业务逻辑
-const route = useRoute();
+import { onMounted, onBeforeUnmount } from 'vue';
+
+const handleLinkClick = (e: MouseEvent) => {
+  const target = (e.target as HTMLElement).closest("a") as HTMLAnchorElement | null;
+  if (target && target.tagName === 'A' && target.href) {
+    e.preventDefault();
+    window.open(target.href, '_blank', 'noopener,noreferrer');
+  }
+}
+
+onMounted(() => {
+  document.addEventListener('click', handleLinkClick);
+});
+
+onBeforeUnmount(() => {
+  document.removeEventListener('click', handleLinkClick);
+});
 </script>
 
 <style>

+ 11 - 11
xinkeaboard-promotion-portal/src/main.ts

@@ -12,15 +12,15 @@ app.use(router)
 app.use(ElementPlus)
 app.mount('#app')
 
-window.addEventListener('popstate', () => {
-  console.log('浏览器前进或后退触发 popstate');
-  window.location.reload();
-});
+// window.addEventListener('popstate', () => {
+//   console.log('浏览器前进或后退触发 popstate');
+//   window.location.reload();
+// });
 
-// 监听 bfcache 恢复
-window.addEventListener('pageshow', (event) => {
-  if (event.persisted) {
-    console.log('页面从 bfcache 恢复');
-    window.location.reload();
-  }
-});
+// // 监听 bfcache 恢复
+// window.addEventListener('pageshow', (event) => {
+//   if (event.persisted) {
+//     console.log('页面从 bfcache 恢复');
+//     window.location.reload();
+//   }
+// });