ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

谷歌搜索结果新标签页打开全攻略:脚本与扩展技巧

谷歌搜索结果新标签页打开全攻略:脚本与扩展技巧 1. 先说清楚为什么这个需求值得单独写一篇如果你用谷歌搜索的频率比较高大概率遇到过一个让人很不舒服的场景你在搜索结果页点了一条链接页面在当前标签页里跳走了你想回到结果列表继续看下一条就得往回退一次。如果那条链接内部的跳转层次比较多比如从博客首页跳到列表页再跳到详情页一次搜索往往要按五六次返回键才能回到结果列表。运气不好按过头了整个搜索结果列表都没了又得重新输入关键词再搜一遍。这个痛点我太熟悉了。我平时的工作里搜索是最高频的动作之一一天要在谷歌上查几十次资料每次都跟返回键较劲几年下来浪费的时间相当可观。这也是为什么“谷歌搜索点击结果打开新的标签页”这个小需求会被那么多人在意甚至想尽办法把它变成默认行为。这篇文章要解决的正是这个问题把“点击搜索结果”这个动作从“当前标签页跳转”改成“新标签页打开”而且尽量不牺牲操作的便利性——最好能做到点一下就是新标签页同时焦点仍然停留在结果列表上这样可以连续点好几条链接逐条对比阅读效率完全不一样。适合来看这篇文章的人分三类第一类是完全不懂浏览器设置的普通用户只想照着步骤操作完以后搜索再也不用来回按返回键第二类是对效率有要求的进阶用户希望用快捷键、脚本甚至扩展来自动化整个流程第三类是偶尔写点脚本、维护自己工具链的玩家想从原理层面理解这个需求为什么默认不生效以及有哪些办法可以绕过浏览器的默认行为。我会把这几年我实际用过的方案全部捋一遍。既有零成本的手指操作方案也有写脚本一劳永逸的方案还有适合团队推广的扩展配置思路。整个过程里我会尽量讲清楚每一步背后的原因而不是只丢给你一串步骤了事。2. 基础方案不装任何工具先用手指解决90%的问题2.1 鼠标与键盘的四个微操作在聊脚本和扩展之前先说最朴素的方案。谷歌浏览器本身就支持通过修饰键来控制链接的打开方式只不过大部分人没有刻意去记。这几个操作你可以现在就试试Ctrl 单击Windows 和 Linux或Command 单击macOS在新后台标签页打开链接焦点停留在当前页。Ctrl Shift 单击Windows 和 Linux或Command Shift 单击macOS在新标签页打开链接并且立即切换到新标签页。鼠标中键按下滚轮单击链接在新后台标签页打开链接。按住Ctrl的同时按回车在地址栏输入的网址直接在新标签页打开但这个跟搜索结果链接无关顺带提一下。其中第一招是我日常用得最多的右手按住鼠标左键左手配合按一下 Ctrl点完链接焦点还留在搜索结果页里可以继续看下一条。如果需要快速跳到刚打开的页面就用第二招或者按Ctrl Tab切换过去。说实话这组手指操作练成肌肉记忆之后效率提升是立竿见影的而且不依赖任何工具换哪台电脑都一样。但这里有个很现实的问题并不是每个人都能适应“每次点结果都要多按一个键”这个习惯。我身边就有不少同事跟他说了好几次按住 Ctrl 点他转头还是直接单击然后继续怨声载道地按返回键。对这种“想要默认行为直接改变”的需求光教手势是不够的必须从浏览器的设置或者链接本身的打开方式上想办法。2.2 浏览器自身设置能改的有限但可以试试这个很多第一次研究这个问题的朋友会跑去浏览器的设置里翻来翻去想找个开关直接改成“搜索结果默认新标签页打开”。我可以直接告诉你结论Chrome 本身没有这样一个全局开关。浏览器把“链接在当前标签页还是新标签页打开”的决定权基本交给了网页代码本身——如果网页给链接设置了target_blank那就能新标签页打开如果没设置浏览器就默认在当前标签页跳转。谷歌搜索结果页的链接恰好就没有强制新标签页打开所以默认行为就是当前页面跳转。虽然没有全局开关但有一个妥协性的替代办法把谷歌搜索结果页固定成网页应用也就是在 Chrome 的“安装网页应用”功能里把它单独变成一个窗口再给它一个独立的窗口模式。这种做法的效果是让搜索结果和你的普通浏览标签隔离开视觉上更专注但并不会直接改变链接的打开方式。所以这个方案只能作为辅助不解决核心问题。另外还有一个思路我认为值得记录在谷歌搜索的设置页面里其实可以开启“在浏览器新窗口中打开每个结果”的选项。这个选项存在于谷歌搜索的旧版设置里对有些地区的用户仍然可见路径是搜索结果页右下角的“设置”→“搜索设置”→“结果打开方式”选择“在浏览器新窗口中打开每个结果”。不过要留意这个设置的生效范围和你登录的账号、访问的谷歌域名版本都有关系而且它打开的是“新窗口”而不是“新标签页”体验比较割裂。我实测下来感觉不够干净所以只把它当作备选。既然原生的“新标签页”默认行为没法靠设置直接搞定那只能靠外力改变了。这就是接下来要说的脚本与扩展方案。3. 进阶方案用脚本与扩展实现零思考的全自动3.1 油猴脚本的必要条件与完整实操如果想做到“点搜索结果就自动新标签页打开而且没有任何额外按键动作”最靠谱的方式是在页面上注入一段脚本把所有结果链接都加上target_blank属性和relnoopener属性。这需要对页面有执行自定义脚本的能力最常用的载体是 Tampermonkey油猴扩展。先交代一个容易被忽视的前提不同浏览器对 Tampermonkey 的支持情况不一样。Chrome 系浏览器现在用的是 Manifest V3油猴脚本在这种环境下的兼容性已经比较成熟基本可以直接用。Firefox 这边兼容性更稳定一些。Edge 因为内核和 Chrome 一致安装体验也差别不大。Safari 上相对麻烦需要单独装 Tampermonkey 的 Safari 版本而且系统设置里还要额外允许扩展运行我的建议是 Safari 用户先考虑用快捷键方案别折腾脚本了。操作上你只需要三步第一步在 Chrome 应用商店搜索 Tampermonkey 并安装第二步点击扩展图标选择“添加新脚本”第三步把下面这段代码粘贴进去保存。// UserScript // name Google Search New Tab // namespace http://tampermonkey.net/ // version 1.1 // description 谷歌搜索结果在新标签页打开 // match https://www.google.com/search?* // match https://www.google.com/search/* // run-at document-idle // grant none // /UserScript (function() { use strict; function forceNewTab() { // 查找所有常规搜索结果链接 document.querySelectorAll(a).forEach(function(link) { // 过滤出真正指向外部页面的结果链接 var href link.getAttribute(href); if (!href) return; // 排除谷歌站内链接、锚点链接和空链接 if (href.startsWith(#) || href.startsWith(mailto:) || href.startsWith(javascript:)) return; // 排除谷歌自己的导航链接 if (href.indexOf(google.) -1 href.indexOf(/url?) -1) return; // 排除点击后需要展开的功能链接 if (link.classList.contains(z1asOb) || link.getAttribute(role) button) return; // 设置新标签页打开 link.setAttribute(target, _blank); link.setAttribute(rel, noopener noreferrer); // 兼容谷歌的跳转链接结构 if (href.indexOf(/url?) -1) { link.setAttribute(target, _blank); link.setAttribute(rel, noopener noreferrer); } }); } // 页面主体变化时重新执行谷歌搜索是动态渲染的 var observer new MutationObserver(function(mutations) { forceNewTab(); }); observer.observe(document.body, { childList: true, subtree: true }); // 首屏执行一次 forceNewTab(); })();这里我特意写了两个重点第一match规则只匹配https://www.google.com的搜索页面避免脚本在其他页面爆炸第二用MutationObserver监听页面 DOM 变化因为谷歌搜索结果页用的是动态渲染往下滚动加载更多结果时如果没有监听新加载出来的链接仍然不会带上target_blank。这是我第一版脚本踩过的坑当时只执行了一次滚到页面底部就发现新结果全部“变回原形”了。脚本保存后回到谷歌搜索页面随便搜一个关键词点击任意一条结果浏览器就会自动在新标签页打开焦点保持在搜索结果页。这个体验说实话比按 Ctrl 还要顺手因为你完全不需要改变之前的点击习惯。这里再补充一个安全小知识为什么脚本里必须手动加上relnoopener因为target_blank打开的页面会获得对原页面window.opener对象的访问权限如果那个页面存在恶意代码可以通过反向操作把原始搜索页导航到钓鱼站点。加上了noopener新页面就拿不到对原页面的控制权了。这个细节普通用户可能不在乎但写代码的人必须养成这个习惯。3.2 浏览器扩展的选型与配置写脚本对很多人来说还是太“硬核”了。如果你不想碰代码更稳妥的方式是直接安装一个现成的浏览器扩展。搜索“open google results in new tab”或者“Google search new tab”能找到不少比如 Search Result New Tab、Open Google Results in New Tab 这类。它们的原理跟我上面写的脚本差不多只不过被包装成了一个带界面的按钮你安装之后打开谷歌搜索页就能生效零学习成本。选型的时候我建议重点关注三点权限要求是否克制。一个打开新标签页的扩展不应该申请“读取所有网站的数据”这种大权限。如果一个工具功能单一却索要过多权限大概率有数据采集嫌疑直接跳过。更新频率是否正常。长时间不更新的扩展遇到谷歌调整页面结构就会失效。评价数量与近一个月活跃用户数。这两个指标能过滤掉大多数粗制滥造的扩展。我自己在用的一个扩展只申请了“访问 google.com”的权限安装后没有弹窗、没有设置项装上就生效卸载也干净。这种插件是理想型的。这里要提醒一句热门词的搜索结果页扩展商店里有很多“山寨”工具有些看起来功能完全吻合装上后却会在你的浏览器里注入广告脚本、篡改新标签页甚至埋设后门。下载扩展不要只看名称和图标一定要看发布者、权限列表和用户评价。宁可多花三分钟核实也不要图方便装一个可疑工具。4. 方案对比与避坑指南4.1 三种方案怎么选为了让你能对号入座我把手头几种方案的差异整理成了一张表方案学习成本自动化程度稳定性适用人群Ctrl/Command 单击零成本手动永远稳定任何平台的所有用户油猴脚本自动单击初中级全自动依赖谷歌页面结构需要偶尔维护愿意折腾、追求极致效率的用户扩展“装上即用”零成本全自动看扩展发布者维护频率想要零代码解决的普通用户我的建议是如果你是重度搜索用户且大部分时间固定使用同一台电脑优先考虑扩展方案——它具备全自动的特性也不需要维护代码。如果你对浏览器扩展权限敏感、坚持最小权限原则那就学一下脚本方案自定义程度更高还能顺手把其他搜索站的规则一并写了。如果只是偶尔用谷歌搜索完全没必要装任何东西记住一个 Ctrl 键就行。另外要特别说一个容易混淆的点很多人以为“把谷歌搜索设置成默认搜索引擎”和“搜索结果在新标签页打开”是一回事。其实这是两码事。默认搜索引擎地址栏就能搜但搜索结果的打开方式仍然受链接行为控制。所以哪怕你已经把 Chrome 的默认搜索引擎改成了谷歌这个问题依然存在需要单独处理。4.2 实操中常遇到的翻车问题方案落地的过程中有几个问题出现的频率非常高我单独列出来给你当排查手册用。第一个问题是脚本已经启用但点击结果仍然在当前标签页打开。常见原因有三个一是match规则没有覆盖到你实际访问的谷歌域名比如你用的是带国家代码的域名或者通过其他入口进入的搜索页需要把对应域名加到匹配规则里二是浏览器没有正确加载油猴扩展地址栏旁边看不到浮动的脚本图标就说明没生效三是脚本报错被浏览器拦截了这时候需要打开开发者工具看 Console 报错信息。第二个问题是结果页的“图片”“视频”“资讯”等垂直 tab 被脚本误伤。因为那些链接本质上也是搜索结果的一部分但它们不一定适合新标签页打开误伤之后体验反而混乱。处理办法是在脚本过滤条件里把https://www.google.com/search?之外的、带有明显垂直模块特征的链接排除掉或者干脆在脚本里加一个跳过逻辑比如link.id ! image link.id ! video。第三个问题是谷歌搜索结果页改版后脚本失效。谷歌每年都会调整搜索结果页的 DOM 结构刚才脚本里用到的a标签选择器是最底层、最通用的通常不会失效但如果你自己加了很精细的 CSS 选择器很可能在改版后找不到元素。所以我写脚本的原则一直都是能匹配a标签就尽量用a标签别过度依赖某一个 class 名。第四个问题也是比较容易忽略的如果搜索结果里出现了“Google 应用”的快捷方式、工具栏按钮这类带有链接但实际是功能性元素的内容脚本一刀切地给它们加target_blank点击后可能会弹出奇怪的空白页。我上面脚本里已经加了rolebutton的排除条件但你可以根据自己的使用习惯继续扩充排除列表。还有一个在团队场景里常见的情况公司用统一浏览器策略管理员工电脑管理员可以在组策略里锁定扩展安装权限。如果你想在团队里推广这个方案不能指望每个人自己去安装扩展或脚本最好是在受管浏览器配置里统一预装扩展这就涉及企业管理的范畴了个人用户了解一下即可。5. 顺手再聊聊搜索结果页的体验优化5.1 标签页分组与搜索场景的配合既然把搜索结果都改到新标签页打开一个新的问题就来了标签页数量会快速增长。搜一个不太明确的关键词你可能会同时打开个七八个标签页时间一长标签栏密密麻麻挤在一起找起来照样费劲。这时候 Chrome 的标签页分组功能就派上用场了。在标签页栏上右键选择“将标签页添加到新组”然后给组起个名字、选个颜色。搜索过程中打开的标签页可以被归到同一个组里不同主题的搜索用不同颜色区分一眼就能定位。比如我通常会把“工作”相关的搜索结果组成蓝色组“生活”相关的组成绿色组切来切去非常清爽。配合标签分组还有一个技巧值得说先把搜索结果改成新标签页打开然后不要立刻切换过去而是继续在当前结果页里筛选看完一条关一条。显示在标签栏上的标签会逐渐减少而这个“从多到少”的过程本身就是一种整理到最后只剩下最值得精读的两个页面时再集中时间慢慢读。这个流线思路比你一次性把标签页全打开再去一个个点开读要清晰得多。5.2 收藏夹、Favicon 与双列布局的关联体验标签页变多之后尽快识别出每一个标签页的内容就变得特别重要。Chrome 的标签页标题旁边会显示网站的 Favicon也就是那个小图标。如果你经常在谷歌搜索结果里打开网址这些小图标的识别效率远高于文字标题。而某些网站如果没有正确设置 Favicon标签页上就会显示一个灰色默认图标混在一堆标签里很难分辨。这种时候我会顺手建议你装一个显示 Favicon 的增强扩展或者用浏览器自带的“标签页预览”功能。另外一个大家比较感兴趣的方向是双列布局。谷歌搜索的结果列表默认是单列的但手机端的谷歌搜索已经改成双列卡片流了电脑端却一直没有跟上。有些人喜欢在宽屏显示器下把搜索结果改成双列布局配合“新标签页打开结果”的需求阅读效率会进一步提升。实现双列布局的常见方式是往搜索结果页注入一段 CSS把搜索结果容器改成两列网格同时让新标签页打开的行为继续保持。这两个需求本质上可以合并到一个脚本里既有target_blank的逻辑又有 CSS 样式注入。如果你用的是现成的扩展加现成的用户样式注入工具也完全可以并行工作互不冲突。我用双列布局时踩过一个不大不小的坑某些广告卡片的高度很突兀两列排列后容易导致右侧列有部分结果被挤到视线之外所以后来我只在分辨率大于 1600 的显示器上启用双列展示笔记本小屏幕上保持默认单列。另外还有一个很实用的技巧如果你经常在搜索结果中反复打开同一个网站的页面可以把那个网站直接加进书签栏。书签栏上的网址加入拖拽功能后很多场景下你根本不用通过谷歌搜索来导航直接点书签栏就能打开网站省掉中间商也顺手省掉一个标签页的关键操作。这个思路虽然和“谷歌搜索打开新标签页”不完全是一个话题但带来的效率提升是类似的。说到底搜索效率从来不只是“打开链接的方式”这一个点。把新标签打开、标签页分组、网站图标识别、书签栏导航这几个动作串起来整个信息获取流程才会真正变得顺畅。我这边强烈推荐的目标工作流是这样的谷歌搜索 → 单击结果自动新标签页打开 → 看完一个关一个 → 同一主题归到同一标签组 → 最后精读阶段把所有标签组展开慢慢看。熟练之后这个流程会比以前的“搜索—返回—搜索—返回”舒服太多。我在实际使用中还有一个重要的习惯每年年初会花十分钟检查一下自己用的搜索脚本和扩展是否还正常。谷歌只要改一次页面结构很多第三方的工具就会悄悄失效不主动检查等真正要用的时候才发现临时去解决会非常被动。顺手也给脚本里留好注释哪怕一年后你自己看着这段代码也能快速想起来每一步的作用。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进