Greasy Fork is available in English.
删除阿里巴巴集团下网站的跟踪参数
// ==UserScript==
// @name FuckAlibabaTrack 删除阿里巴巴集团下网站的跟踪参数
// @namespace http://tampermonkey.net/
// @version 0.1
// @description 删除阿里巴巴集团下网站的跟踪参数
// @author junbaor
// @match *.aliyun.com/*
// @match *.taobao.com/*
// @match *.tmall.com/*
// @grant none
// ==/UserScript==
(function () {
'use strict';
function removeParam(url, paramName) {
var indexParamStart = url.indexOf("?");
var indexParamEnd = url.indexOf("#");
var queryString;
var anchorString = "";
if (indexParamEnd < 0) {
queryString = url.substring(indexParamStart);
} else {
queryString = url.substring(indexParamStart, indexParamEnd);
anchorString = url.substring(indexParamEnd)
}
var resultUrl = doRemoveParam(queryString, paramName);
return url.substring(0, indexParamStart) + resultUrl + anchorString;
}
function doRemoveParam(url, paramName) {
var firstCase = url.indexOf("?" + paramName + "=");
var noFirstCase = url.indexOf("&" + paramName + "=");
// 需要替换的参数不是第一个参数
if (noFirstCase >= 0) {
var before = url.substring(0, noFirstCase);
var after = url.substring(noFirstCase);
var i = after.indexOf("&", 2);
return before + after.substring(i);
} else if (firstCase >= 0) {
// 需要替换的参数是第一个参数
var i2 = url.indexOf("&");
if (i2 < 0) {
return "";
}
var substring = url.substring(i2);
if (substring.startsWith("&")) {
return "?" + substring.substring(1);
}
return substring;
}
// 不包含想要替换的参数直接返回
return url;
}
var locationUrl = window.location.href;
var params = ["spm", "acm", "scm", "ali_trackid", "clk1", "upsid", "bxsign"];
for (var i = 0; i < params.length; i++) {
locationUrl = removeParam(locationUrl, params[i]);
}
console.log("替换后的最终地址:" + locationUrl);
history.replaceState(history.state, history.title, locationUrl);
})();