Reomve ZhiHu Link Redirect

去除知乎链接的重定向

目前為 2020-03-03 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name Reomve ZhiHu Link Redirect
  3. // @version 0.1
  4. // @description 去除知乎链接的重定向
  5. // @author roshanca
  6. // @match http://*.zhihu.com/*
  7. // @match https://*.zhihu.com/*
  8. // @grant none
  9. // @namespace https://gf.qytechs.cn/users/20921
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. var DOMObserverTimer = null;
  16. var DOMObserverConfig = {
  17. attributes: true,
  18. childList: true,
  19. subtree: true
  20. };
  21. var DOMObserver = new MutationObserver(function () {
  22. if (DOMObserverTimer) {
  23. clearTimeout(DOMObserverTimer);
  24. }
  25. DOMObserverTimer = setTimeout(function () {
  26. DOMObserver.disconnect();
  27. handleLinks();
  28. DOMObserver.observe(document.body, DOMObserverConfig);
  29. }, 100);
  30. });
  31. DOMObserver.observe(document.body, DOMObserverConfig);
  32.  
  33. // first run
  34. handleLinks();
  35.  
  36. // cache
  37. var processedLinks = new WeakMap();
  38.  
  39. var handleLinks = function () {
  40. var allLink = document.querySelectorAll('a.external, a.LinkCard');
  41.  
  42. if (!allLink.length) return;
  43.  
  44. for (var i = 0, len = allLink.length; i < len; i++) {
  45. var link = allLink[i];
  46. if (processedLinks.has(link)) {
  47. continue;
  48. } else {
  49. processedLinks.set(link, 1);
  50. replaceLink(link);
  51. }
  52. }
  53. };
  54.  
  55. var replaceLink = function(link) {
  56. var href = link.href;
  57. var regRet = href.match(/target=(.+?)(&|$)/);
  58. var newHref = href;
  59.  
  60. if (regRet && regRet.length === 3) {
  61. newHref = regRet[1];
  62. }
  63.  
  64. link.href = newHref;
  65. };
  66. })();

QingJ © 2025

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