您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
This removes the random fragment identifiers used to track you.
- // ==UserScript==
- // @author James Edward Lewis II
- // @name Tracking Hash Remover
- // @namespace greasyfork.org
- // @version 0.0.1
- // @description This removes the random fragment identifiers used to track you.
- // @grant none
- // @include *
- // @license MIT
- // @copyright 2015+, James Edward Lewis II
- // @run-at document-start
- // ==/UserScript==
- (function trackingHashRemover(window, undefined) {
- 'use strict';
- var trackPattern = /^#?\.[a-zA-Z0-9]{8,}/, interval;
- function removeHash(hsh) {
- var subst, idx;
- if (typeof hsh === 'symbol') hsh = '';
- hsh += '';
- idx = hsh.indexOf('#');
- if (idx !== -1) {
- subst = hsh.slice(idx);
- if (trackPattern.test(subst)) return hsh.slice(0, idx);
- else return hsh;
- } else return '';
- }
- function locHashRemover() {
- var hsh = location.hash;
- if (trackPattern.test(hsh)) location.hash = '';
- else {
- clearInterval(interval);
- interval = null;
- }
- }
- function removeHashes() {
- var links = document.getElementsByTagName('a'),
- forms = document.getElementsByTagName('form'), i;
- interval = interval || setInterval(locHashRemover, 16);
- for (i in links)
- if (links.hasOwnProperty(i))
- i.hash = removeHash(i.hash);
- for (i in forms)
- if(forms.hasOwnProperty(i))
- i.action = removeHash(i.action);
- }
- function dclRemover() {
- document.removeEventListener('DOMContentLoaded', dclRemover, false);
- removeHashes();
- }
- function loadRemover() {
- window.removeEventListener('load', loadRemover, false);
- removeHashes();
- }
- removeHashes();
- document.addEventListener('readystatechange', removeHashes, false);
- document.addEventListener('DOMContentLoaded', dclRemover, false);
- window.addEventListener('load', loadRemover, false);
- window.addEventListener('hashchange', removeHashes, false);
- }(window));