相信不止我有这个需求,希望点击帖子的时候不是直接跳转,而是在新标签页打开。所以拿 AI 做了这样一个油猴脚本,并且支持点击头像后的侧边栏,这里打开帖子链接也会自动打开新标签页,并且跳转
解决类似问题: 论坛有办法在新标签页中打开帖子吗 - 运营反馈 - LINUX DO
当然你右键也行,但是每个帖子都右键一遍,真的不觉得麻烦吗?
还得是自动化
// ==UserScript==
// @name Linux.do 帖子新标签页打开 (自动激活)
// @namespace http://tampermonkey.net/
// @version 1.1
// @description 在 Linux.do 论坛点击帖子时,强制在新标签页打开并立即跳转。
// @author Gemini
// @match https://linux.do/*
// @grant GM_openInTab
// @run-at document-start
// ==/UserScript==
(function() {
'use strict';
// 监听全局点击事件,使用捕获模式 (true) 确保在网页 JS 执行前拦截
document.addEventListener('click', function(e) {
// 向上查找最近的 A 标签
var link = e.target.closest('a');
// 1. 必须是 A 标签
// 2. 必须有 href 属性
if (link && link.href) {
// --- 核心过滤逻辑 ---
// 排除 javascript: 调用、锚点 # 和空链接
if (link.href.startsWith('javascript:') || link.href.includes('#') || link.href === '') {
return;
}
// 针对 Linux.do (Discourse) 的优化:
// 只有链接中包含 '/t/' (代表 topic/帖子) 时才新标签打开
// 如果你想所有链接都新标签打开,请删除下面这行 if 判断
if (link.href.includes('/t/')) {
// 阻止默认行为(防止当前页跳转)
e.preventDefault();
e.stopPropagation();
// 使用油猴 API 强制新标签页打开并激活
// active: true -> 立即跳转过去
// insert: true -> 插在当前标签旁边
GM_openInTab(link.href, { active: true, insert: true });
}
}
}, true); // useCapture = true 是针对 SPA 网站的关键
})();