UTM param stripper

Drop the UTM params from a URL when the page loads.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name          UTM param stripper
// @author        Paul Irish
// @namespace     http://github.com/paulirish
// @version       1.1.2
// @description   Drop the UTM params from a URL when the page loads.
// @extra         Cuz you know they're all ugly n shit.
// @include       /^https?:\/\/.*[\?#&]utm_.*/
// @grant         none
// ==/UserScript==


// Install instruction!!!!
// Click `raw` in the top right on this gist!

if (/utm_/.test(location.search) && window.history.replaceState){  
  
  // thx @cowboy for the revised hash param magic.
  var oldUrl = location.href;
  var newUrl = oldUrl.replace(/\?([^#]*)/, function(_, search) {
    search = search.split('&').map(function(v) {
      return !/^utm_/.test(v) && v;
    }).filter(Boolean).join('&'); // omg filter(Boolean) so dope.
    return search ? '?' + search : '';
  });

  if ( newUrl != oldUrl ) {
    window.history.replaceState({},'', newUrl); 
  }
  
}

// also..
// drop this into your own site, in case people link to you with 
// email newsletters or your rss feed's feedburner tracking or whatever.