Content Table

Safari 中去除 Google 搜索结果的重定向

以前去除 Google 搜索结果重定向 Safari 插件几乎都不能用了,现在可选的方案有:

  • 油猴插件加载去除Google 搜索结果重定向脚本 (油猴需要购买)
  • 使用 Userscripts 插件,加载自定义 JS 实现 (免费,但需要自己写代码)
  • 使用 Xcode 编写 Safari 插件

下面使用 Userscripts 插件实现去除 Google 搜索结果的重定向:

  1. 安装 Userscripts: 在 App Store 中搜索 Safari 插件 Userscripts 进行安装
  2. 在 Userscript 的 Open Extension Page 页面中点击 + > New Javascript 创建 JS 脚本
  3. 复制下面的 JS 到第 2 步创建的 JS 脚本中

打开 Google,点击搜索结果,不出意外目标链接能直接在新标签页中打开了,没有使用 Google 的重定向链接。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// ==UserScript==
// @name Remove Google Redirect
// @description 去除 Google 搜索结果的重定向
// @include *://www.google.com/*
// @include *://www.google.com.*/*
// ==/UserScript==

// 只有 Google 才生效 (在 @include 中配置)
// if (!window.location.href.includes('www.google.com')) {
// return;
// }

// 获取所有第三方链接
// 广告链接: div[data-text-ad] a
// 普通链接: .g a[rel="noopener"]
let as = document.querySelectorAll('div[data-text-ad] a, .g a[rel="noopener"]');

// 打开链接:
// 1. 遍历所有第三方链接
// 2. 保存 a 标签的 href 到 data-href 属性中,因为在 click 事件的时候 Google 会先把 href 处理为需要跳转的链接
// 3. 点击标签 a 时获取 data-href 得到链接的 url 在新标签页打开,并且阻止点击事件冒泡
for (let a of as) {
a.setAttribute('data-href', a.getAttribute('href'));
a.addEventListener('click', function (event) {
const url = a.getAttribute('data-href');
window.open(url, '_blank');

event.preventDefault();
return false;
});
}