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-10-11 提交的版本,查看 最新版本

  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.2
  6.  
  7. // ==/UserScript==
  8.  
  9. var links = document.links;
  10.  
  11. var isInArchive = window.location.hostname == "web.archive.org";
  12.  
  13. for(var l = 0; l < links.length; l++)
  14. {
  15. if(URLToObject(links[l].href) == null) continue;
  16. var archivePrefix = isInArchive ? /http:\/\/web\.archive\.org\/web\/\d{1,14}\//.exec(window.location.href) : "";
  17. if(URLToObject(links[l].href).hasOwnProperty("url")) links[l].href = archivePrefix + URLToObject(links[l].href)["url"];
  18. else if(URLToObject(links[l].href).hasOwnProperty("URL")) links[l].href = archivePrefix + URLToObject(links[l].href)["URL"];
  19. }
  20.  
  21. function URLToObject(url)
  22. {
  23. var URLBits = new Object();
  24.  
  25. var splitURL = url.split("?");
  26.  
  27. if(splitURL[1] == undefined) return null;
  28. var params = splitURL[1].split("&");
  29.  
  30. for(var i = 0; i < params.length; i++)
  31. {
  32. var splitParameter = params[i].split("=");
  33. if(ArrayOccurence(params,splitParameter[0]).length > 1)
  34. {
  35. var keyList = [];
  36. for(var o = 0; o < ArrayOccurence(params,splitParameter[0]).length; o++)
  37. {
  38. var newValue = ArrayOccurence(params,splitParameter[0])[o].split("=")[1];
  39. keyList.push(newValue);
  40. }
  41. URLBits[splitParameter[0]] = keyList;
  42. }
  43. else
  44. {
  45. if(!isNaN(parseInt(params[i][1]))) URLBits[splitParameter[0]] = parseInt(splitParameter[1]);
  46. else URLBits[splitParameter[0]] = splitParameter[1];
  47. }
  48. }
  49.  
  50. return URLBits;
  51. }
  52.  
  53. function ArrayOccurence(array,key)
  54. {
  55. var newArray = [];
  56. for(var i = 0; i < array.length; i++)
  57. {
  58. if(array[i].indexOf(key) > -1) newArray.push(array[i])
  59. }
  60. return newArray;
  61. }

QingJ © 2025

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