From dd50659355cf17ea736b758ed1e47a3788903ea8 Mon Sep 17 00:00:00 2001 From: Hakadao Date: Thu, 2 Jan 2025 02:13:23 +0800 Subject: [PATCH] fix: top bar covering content (#1235) resolve #1235 --- src/components/ALink.vue | 8 ++- src/components/TopBar/OldTopBar.vue | 1 + src/components/TopBar/TopBar.vue | 8 ++- .../components/BewlyOrBiliPageSwitcher.vue | 28 ++++++-- src/constants/globalEvents.ts | 2 + src/contentScripts/index.ts | 3 +- src/contentScripts/views/App.vue | 72 +++++++++++++------ src/stores/settingsStore.ts | 23 ++++++ src/utils/iframeMessaging.ts | 42 +++++++++++ 9 files changed, 154 insertions(+), 33 deletions(-) create mode 100644 src/stores/settingsStore.ts create mode 100644 src/utils/iframeMessaging.ts diff --git a/src/components/ALink.vue b/src/components/ALink.vue index cedaf95a..835dc1a9 100644 --- a/src/components/ALink.vue +++ b/src/components/ALink.vue @@ -25,17 +25,19 @@ const openMode = computed(() => { return 'newTab' }) +// Since BewlyBewly sometimes uses an iframe to open the original Bilibili page in the current tab +// please set the target to `_top` instead of `_self` const target = computed(() => { if (openMode.value === 'newTab') { return '_blank' } if (openMode.value === 'currentTabIfNotHomepage') { - return isHomePage() ? '_blank' : '_self' + return isHomePage() ? '_blank' : '_top' } if (openMode.value === 'currentTab') { - return '_self' + return '_top' } - return '_self' + return '_top' }) function handleClick(event: MouseEvent) { diff --git a/src/components/TopBar/OldTopBar.vue b/src/components/TopBar/OldTopBar.vue index 7a356456..9d3b2d84 100644 --- a/src/components/TopBar/OldTopBar.vue +++ b/src/components/TopBar/OldTopBar.vue @@ -488,6 +488,7 @@ defineExpose({ >