URL Stripper

Takes offsite links that stick the original URL into an onsite link with extra parameters and changes the href to that original URL.

目前為 2015-11-25 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name URL Stripper
  3. // @namespace DoomTay
  4. // @description Takes offsite links that stick the original URL into an onsite link with extra parameters and changes the href to that original URL.
  5. // @version 1.0.6
  6.  
  7. // ==/UserScript==
  8.  
  9. var links = document.links;
  10.  
  11. var isInArchive = window.location.hostname == "web.archive.org";
  12.  
  13. var specialCases = [];
  14. specialCases["https://www.google.com/url"] = "q";
  15. var skipList = ["http://tineye.com/search","http://saucenao.com/search.php","http://web.archive.org/web/form-submit.jsp","wayback/available"];
  16.  
  17. for(var l = 0; l < links.length; l++)
  18. {
  19. if(skipList.some(elem => links[l].href.indexOf(elem) > -1)) continue;
  20. var testURL = URLToObject(links[l].href);
  21. var archivePrefix = isInArchive ? /http:\/\/web\.archive\.org\/web\/\d{1,14}\//.exec(window.location.href) : "";
  22. if(testURL == null) continue;
  23. if(specialCases.hasOwnProperty(testURL.base))
  24. {
  25. links[l].href = archivePrefix + testURL[specialCases[testURL.base]];
  26. continue;
  27. }
  28. if(testURL.hasOwnProperty("url")) links[l].href = archivePrefix + testURL.url;
  29. else if(testURL.hasOwnProperty("URL")) links[l].href = archivePrefix + testURL.URL;
  30. }
  31.  
  32. function URLToObject(url)
  33. {
  34. var URLBits = {};
  35.  
  36. var splitURL = url.split("?");
  37.  
  38. if(splitURL[1] == undefined) return null;
  39. URLBits.base = splitURL[0];
  40. var params = splitURL[1].split("&");
  41.  
  42. for(var i = 0; i < params.length; i++)
  43. {
  44. var splitParameter = params[i].split("=");
  45. URLBits[splitParameter[0]] = splitParameter[1];
  46. }
  47.  
  48. return URLBits;
  49. }

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址