Yahoo direct non-tracking search

Strips tracking and redirection from Yahoo search urls

当前为 2015-10-12 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name          Yahoo direct non-tracking search
// @description   Strips tracking and redirection from Yahoo search urls
// @include       https://*yahoo.com/*
// @version       1.0.3
// @author        wOxxOm
// @namespace     wOxxOm.scripts
// @license       MIT License
// @grant         none
// @run-at        document-start
// @require       https://greasyfork.org/scripts/12228/code/setMutationHandler.js
// ==/UserScript==

setMutationHandler(document, '.search-assist-form-wrapper form, a', function(nodes) {
  nodes.forEach(function(node) {
    switch (node.localName) {
      case 'form':
        if (node.action.indexOf('/search') > 0) {
            node.addEventListener('submit', function(e){
              e.preventDefault();
              e.stopPropagation();
              e.target.action = e.target.action.replace(/_yl[tu]=[\w;_=.-]+/, '');
              e.target.submit();
            });
        }
        break;
      case 'a':
        node.href = node.href.replace(/;?_yl[tu]=[\w;_=.-]+\/?/, '')
                             .replace(/^.+?\/RU=(http[^\/]+)\/?.*$/, function(s, url) { return decodeURIComponent(url) });
        break;
    }
  });
  return true;
});