open all links in the new tab except for the turn page link

except for the turn page link whose inner text is 'next', 'previous' and other page number

  1. // ==UserScript==
  2. // @name open all links in the new tab except for the turn page link
  3. // @description except for the turn page link whose inner text is 'next', 'previous' and other page number
  4. // @include http://*
  5. // @include https://*
  6. // @author yechenyin
  7. // @version 1.0
  8. // @namespace https://gf.qytechs.cn/users/3586-yechenyin
  9. // @grant GM_openInTab
  10. // ==/UserScript==
  11. (function() {
  12. "use strict";
  13.  
  14. var exception = [/^https:\/\/www\.google\.\w+\/search/, 'https://m.leiphone.com/page/'];
  15. function getAncestorLink(element) {
  16. while (element && element.nodeName != "A") {
  17. element = element.parentNode;
  18. }
  19. if (element && element.nodeName && element.nodeName === "A" && element.href && element.href.indexOf('http') === 0)
  20. return element;
  21. }
  22.  
  23. String.prototype.matched = function(strings) {
  24. for (var i = 0; i < strings.length; i++) {
  25. if (typeof strings[i] == 'string' && this.indexOf(strings[i]) === 0)
  26. return true;
  27. else if (strings[i] instanceof RegExp && strings[i].test(this))
  28. return true;
  29. }
  30. return false;
  31. };
  32.  
  33. if (location.href.indexOf('https://tech.sina.cn') === 0) {
  34.  
  35. var setLinkAction = function(node) {
  36. if (node && !node.hasAttribute('setted') && node.nodeName && node.nodeName === "A" && node.href && node.href.indexOf('http') === 0) {
  37. node.setAttribute('setted', '');
  38. node.addEventListener('click', function(e) {
  39. e.preventDefault();
  40. e.stopPropagation();
  41. if (this && this.href && !this.href.matched(exception) && !/^(\d+|Next|Prev|>|<|下一页|上一页|下一頁|上一頁|回首頁|次へ|前へ)$/.test(this.innerText)) {
  42. console.log(this, e.target);
  43. window.open(this.href);
  44. } else {
  45. location.href = this.href;
  46. }
  47. });
  48. }
  49. };
  50.  
  51. for (var i = 0; i < document.getElementsByTagName("A").length; i++) {
  52. setLinkAction(document.getElementsByTagName("A")[i]);
  53. }
  54. var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
  55. if (MutationObserver) {
  56. var observer = new MutationObserver(function(records) {
  57. records.map(function(record) {
  58. setLinkAction(record.target);
  59. for (var i = 0; i < record.target.getElementsByTagName("A").length; i++) {
  60. setLinkAction(record.target.getElementsByTagName("A")[i]);
  61. }
  62. });
  63. });
  64. observer.observe(document.body, {
  65. childList: true,
  66. subtree: true
  67. });
  68. }
  69. } else {
  70. document.addEventListener('click', function(e) {
  71. var link = getAncestorLink(e.target);
  72. console.log(link.innerText);
  73. if (link && link.href && !link.href.matched(exception) && link.innerText && !/^(\d+|Next|Prev|>|<|下一页|上一页|下一頁|上一頁|回首頁|次へ|前へ)$/.test(link.innerText))
  74. link.target = '_blank';
  75. });
  76. }
  77.  
  78.  
  79.  
  80. })();

QingJ © 2025

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