From f06a4a4df87387c7daef970231a111a3249934c2 Mon Sep 17 00:00:00 2001
From: Chi <2623135403@qq.com>
Date: Mon, 6 Oct 2025 21:56:03 +0800
Subject: [PATCH 1/2] =?UTF-8?q?Fix:=20=E4=BF=AE=E5=A4=8D=E7=82=B9=E5=87=BB?=
=?UTF-8?q?=E6=90=9C=E7=B4=A2=E7=BB=93=E6=9E=9C=E6=97=A0=E6=B3=95=E5=9C=A8?=
=?UTF-8?q?=E6=96=B0=E6=A0=87=E7=AD=BE=E9=A1=B5=E6=89=93=E5=BC=80=E7=9A=84?=
=?UTF-8?q?bug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../BasicSettings/MenuOpenpostblank.vue | 70 +++++--------------
1 file changed, 19 insertions(+), 51 deletions(-)
diff --git a/entrypoints/SettingComponents/BasicSettings/MenuOpenpostblank.vue b/entrypoints/SettingComponents/BasicSettings/MenuOpenpostblank.vue
index 637c192c..8011e25e 100644
--- a/entrypoints/SettingComponents/BasicSettings/MenuOpenpostblank.vue
+++ b/entrypoints/SettingComponents/BasicSettings/MenuOpenpostblank.vue
@@ -10,58 +10,26 @@ export default {
props: ["modelValue", "sort"],
emits: ["update:modelValue"],
created() {
- if (this.modelValue) {
-
- // 处理链接点击
- function handleLinkClick(e) {
- e.preventDefault();
- e.stopPropagation(); // 阻止事件冒泡
- e.stopImmediatePropagation(); // 阻止事件捕获和后续相同事件的处理
- window.open(this.href, '_blank', 'noopener,noreferrer');
- }
-
- // 主要功能
- function processLinks() {
- // 查找所有帖子标题链接,扩展选择器以包含搜索页面的链接
- const links = document.querySelectorAll('.link-top-line a.title:not([data-processed])');
-
- links.forEach(link => {
- // 标记该链接已处理
- link.setAttribute('data-processed', 'true');
- // 添加事件监听器
- link.addEventListener('click', handleLinkClick);
- });
- }
-
- // 监听 DOM 变化,处理动态加载的内容
- const observer = new MutationObserver((mutations) => {
- const hasNewLinks = mutations.some(mutation => {
- return Array.from(mutation.addedNodes).some(node => {
- return node.nodeType === 1 && (
- node.classList.contains('link-top-line') ||
- node.querySelector('.link-top-line') ||
- node.classList.contains('search-results') ||
- node.querySelector('.search-results')
- );
- });
- });
-
- if (hasNewLinks) {
- processLinks();
+ if (this.modelValue) {
+ function handleLinkClick(e) {
+ const linkSelector='.link-top-line a.title, .search-results a.search-link, .search-result-topic a.search-link'
+ // 检查被点击的元素或其父元素是否是要找的标签
+ const link = e.target.closest(linkSelector);
+
+ if (link && link.href) {
+ e.preventDefault();
+ e.stopPropagation();
+ e.stopImmediatePropagation();
+
+ window.open(link.href, '_blank', 'noopener,noreferrer');
+ }
}
- });
-
- // 开始观察
- observer.observe(document.body, {
- childList: true,
- subtree: true
- });
-
- // 初始处理
- processLinks();
-
- }
- },
+
+ // 使用事件委托,在 body 上监听一次即可,无需 MutationObserver
+ // 使用 { capture: true } 在捕获阶段拦截事件,确保最高优先级
+ document.body.addEventListener('click', handleLinkClick, { capture: true });
+ }
+ },
};
From 3b4a3cf8fd5a2e135a35ddf473ede68201de3eeb Mon Sep 17 00:00:00 2001
From: Chi <2623135403@qq.com>
Date: Mon, 6 Oct 2025 22:16:34 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9linkSelector?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../SettingComponents/BasicSettings/MenuOpenpostblank.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/entrypoints/SettingComponents/BasicSettings/MenuOpenpostblank.vue b/entrypoints/SettingComponents/BasicSettings/MenuOpenpostblank.vue
index 8011e25e..14a86ab5 100644
--- a/entrypoints/SettingComponents/BasicSettings/MenuOpenpostblank.vue
+++ b/entrypoints/SettingComponents/BasicSettings/MenuOpenpostblank.vue
@@ -12,7 +12,7 @@ export default {
created() {
if (this.modelValue) {
function handleLinkClick(e) {
- const linkSelector='.link-top-line a.title, .search-results a.search-link, .search-result-topic a.search-link'
+ const linkSelector='.link-top-line a.raw-link, .search-results a.search-link, .search-result-topic a.search-link'
// 检查被点击的元素或其父元素是否是要找的标签
const link = e.target.closest(linkSelector);