Skip to content

fix: 修复点击搜索结果无法在新标签页打开的问题#269

Merged
anghunk merged 2 commits intoanghunk:mainfrom
cyscjl:fix/open-post-blank
Oct 9, 2025
Merged

fix: 修复点击搜索结果无法在新标签页打开的问题#269
anghunk merged 2 commits intoanghunk:mainfrom
cyscjl:fix/open-post-blank

Conversation

@cyscjl
Copy link
Copy Markdown
Contributor

@cyscjl cyscjl commented Oct 6, 2025

之前有人提了修复 #194 。但是最新版本没把这个修复 #194 合并进去。

之前的 PR #194 注意到了这个问题并尝试修复,但其实现方式引入了一个新的 Bug:当用户点击搜索结果时,链接不仅会在新标签页打开,同时也会在原始标签页加载,导致一次点击触发两次页面跳转。

问题复现:
image

点击搜索结果后,原始标签页也打开了帖子
image

问题修复:

  • 确保首页和搜索的链接在新标签页中打开。
  • 修复一次点击导致两个标签页都打开的 Bug。

测试系统:Win11

测试浏览器:Edge,Chrome和Firefox,都为最新版本。

解决方案

  created() {
      if (this.modelValue) {
        function handleLinkClick(e) {
          const linkSelector='.link-top-line a.raw-link, .search-results a.search-link, .search-result-topic a.search-link'
          // 检查被点击的元素或其父元素是否是要找的<a>标签
          const link = e.target.closest(linkSelector);
          
          if (link && link.href) {
            e.preventDefault();
            e.stopPropagation();
            e.stopImmediatePropagation();
            
            window.open(link.href, '_blank', 'noopener,noreferrer');
          }
        }
        
        // 使用事件委托,在 body 上监听一次即可,无需 MutationObserver
        // 使用 { capture: true } 在捕获阶段拦截事件,确保最高优先级
        document.body.addEventListener('click', handleLinkClick, { capture: true });
      }
    },

@netlify
Copy link
Copy Markdown

netlify Bot commented Oct 6, 2025

Deploy Preview for linuxdo-scripts canceled.

Name Link
🔨 Latest commit 3b4a3cf
🔍 Latest deploy log https://app.netlify.com/projects/linuxdo-scripts/deploys/68e3d3d9afbb2400086de593

@anghunk anghunk merged commit 2add22c into anghunk:main Oct 9, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants