Astronomy Journal to ADS

Add direct link to NASA/ADS on iop.org webpage for astronomy papers.

  1. // ==UserScript==
  2. // @name Astronomy Journal to ADS
  3. // @namespace niu541412
  4. // @version 0.96
  5. // @description Add direct link to NASA/ADS on iop.org webpage for astronomy papers.
  6. // @author niu541412@gmail.com
  7. // @match *://iopscience.iop.org/article/*
  8. // @match *://www.nature.com/articles/*
  9. // @match *://science.sciencemag.org/*
  10. // @match *://www.science.org/*
  11. // @match *://www.annualreviews.org/*
  12. // @match *://link.springer.com/article/*
  13. // @match *://www.sciencedirect.com/science/*
  14. // @grant none
  15. // @icon data:image/gif;base64,R0lGODdhPAA8ANUAAAAAAAAAUgAAYwAQQggQWhAQYwAYUhAYShAYYxgYUgAhWhAhcwApYzEpaxAxYxAxayExazkxhDE5aylCczlCc0pCe0JKe0JKhEpKhClSe0JShEpSjDlajEpahFJae0pjlGNjnDlrhEp7nFp7nHN7rXt7pXOUrZyctYylvZy1xpy91r291s7O1sbW3tbW5+/v7/f39////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAADIALAAAAAA8ADwAAAb/QIZQqCAyYoRkssgowpRLIxLKLE6VVcZTGWMKoQQYYjwGi8kIcAydhp7JavQ1ye4q7go2DH8vyPl5f3x+ZHt4MQwFfgwGUmBZW0qNTUePjlCTTlBdQwxtSTCdnpuiaqKfYaWbcgRwWXZ4bC+AdWB1tGgvBAq7iGi2YJRFvGCraMKjUMioXQhDbKKUwo0GeX6KCLB3xcAEioFjSHCZo2lt563pfAgKcwTR8EO7h56eZXSEbPpjxLsEiJ0ACaS1iYkzaKLuUGqESAE2V3gMcAMTAMuvdK2QTdzIsaPHes4WHdxHcow9kiBBljzmTEjLeDBjDhmGbOBAjzhz6iyGJt/K/58kFSUaWoAogqJjfBaVyVSmSZpNaCq0iQrjzo4u1lz1RycpoZNAVyoKgOgaUrEIm0Z759RAjGqU2A2bK1CurXtbuQ240o9bXyj6UoZdyYDs4JJqE59yCzeLVEDC/uLtepgNgb1YlFTlyvPn0MpkCq8BnRZeiBioUXNQLIQx1LkMMqRO7YCPZigVUq9YsdfdRAUeUHvAbHVJ1hguWgxYPuAAYJ8CUK8QgCb6gp8wZqfedwF1g5D2iuYT9QG1S1ExJsRE3eKdM9SNKcFXYMDZO5r8oASfsjmGc72oDaCGO+3wRUVm3hwkwHTXhBbOAj6NQdZobGTFRgTiHEWIAhug9v/AUfUElJAII6SmXjSoBQAPfI0UwYIdTbCjXQwowEXHI7nNmEAx2R3IhTstIMFLjjEImAQJb/XBUocxqBDASDEsoBJZD1WIWitkkAXCC6k9OZQnMYAAInrmGSFEemTG0w4Kb51nAJcx8DbPNEXmcWOBRqKT247pBGckGHvxJuQSxfR1xwpX5JNiIg8VMKGUSZk3koSoIRBdgiAqgpRS2VA4RJkoxpACmp+qEE2BRbhVxEvSOHZEkk0ksdefSvQmYAx8XoZrGsT0VgZx/rQzDx5LoJZrglfmM2EMT2Zz3RjRQdAgCKKOdGlSaTTT4ANIxgBBIqG9SoQJqYV4xIlnwuL/IVKtcTJEAamVoAC5qKnQojBJnDBjnrvslUIrd/SW2p9llLArHATQmxoK5qDjkCcVBaAiiEclRV3FigggMXXgXuNJhAcVoDHHGJf8jEmsPRUTq/CwUxM7hIp81IG2EXOHXXnkDDM47PS86k3DJmiBBRpggIEFFEjAqKYYa4pNg2YVQPTQF1R9gQVWW1Ay1M4sUIHRFXxtwdcVsAyT2c4QXfTYYZP9tTM51yT10RoMPXTYdcsl0LC82PR1Bx0YfbTYGJTN6zZ8FG40218LfjQD3jgtOdOEYBO24BoUnfnRFoAbGAJGaxD22KLXPfTRZp9yXicWYJB50ZeDXcEwLuus8sDgbRdeAdGxWzAP33Wx0TjgoRe+tk14ON640YE7XnjUk2eKxu6NZ97B5plXLJgnRSvfPODN726u6ue11HrmbrcddupDGJ+53VjXjT3qevNj50CxY45BBxZ0MDvytxsc7L7WPcddjwIa8kqmJrc812lOc1qbnNOYpzjADQ8DHhhd29jykpZ0kAFjU5vuyFa4TiylEw6U3+vs5rgH6g2AdyCh/lwnvlgIpALdq1voHri5FF7AAU+jnOQaiD0XhoaBl2Nc6y7XQMVpLUQmQZkQhvY6xQmuAhf42PiEkMPmFdB1KQTj2uyHvOVdTgP+K11UbBIEADs=
  16. // @license MIT License
  17. // @run-at document-end
  18. // ==/UserScript==
  19.  
  20. (function () {
  21. 'use strict';
  22.  
  23. if (window.top !== window.self) {
  24. return;
  25. }
  26.  
  27. const currentUrl = window.location.href;
  28. const currentHost = window.location.host;
  29.  
  30. const createLinkElement = (href, text, className) => {
  31. const link = document.createElement('a');
  32. link.href = href;
  33. link.textContent = text;
  34. if (className) {
  35. link.classList.add(className);
  36. }
  37. return link;
  38. };
  39.  
  40. const insertLink = (container, linkElement, prepend = true) => {
  41. if (prepend === true) {
  42. container.prepend(linkElement);
  43. } else {
  44. container.append(linkElement);
  45. }
  46. };
  47.  
  48. let doiMeta;
  49. let doi;
  50. let container;
  51. const adsFavicon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAFKADAAQAAAABAAAAFAAAAACy3fD9AAAESklEQVQ4EXVUW2xURRj+5pw55+yy1oArxYpdur0AIfRCgxZjIjY8+EC8NbEaEkWRaCLwZho0PJlG8dEoRIOQ+GIRA6jPJSb4oIZetE3qUuuySzXbFum2dLu75zIz/nOWlsXLJHsmO/P/3/99/2UY/me1HUslmVzTowTrBUNbaKYwxkx1Thnywlh/w7X/cmX/POw4mmtQwGEY2Adm1EEKKCVCM8ZMwKCfkjk6+EJK7+T48U3paoy7ANvfyXSDRT9lhtUiAhd+4EPKO+YUCCZ5WBaHaUWgAn8K8F//5b2HvluxWgVs7yMwK3KWKNR6XhkRy0BbvY3NdRZqIgY02FJZ4rcZH2PXPZR9Cdt26FT+xU30Dr9bF4KGgK1Hs42M8UHDtJKeW0ZjrY1jz65FxyYbjrUaMyThBgo/Zz30f51Hes6H7UTg5uevl27mnswMdKcMbWUY9puGFUkGvouaqIH+3nXoanZCMEXU5gsCS6WKdoczdDU56Nu7FpyolRfyKOULCWbEDmss3vZWJkn7PhV4lDOFR7dH0Z6w9R1uEcj73y5gKO1SChhe3V2Dnodj4V1rIoI4L1MK5qh+AOPmi1sOXPmIM4s/p6uphAeboo9kPOz/ZA5bH7RDZuevLFMhGLTUgR8K2LsjBodTod08osVZBEFAfgQpeVwo1sNJ0vNMBmFU8gtBcvkAl1NlxByD8mmh/j6OVmL9+NYoOJPI5WZwY3YWLGynMGvUSdQRPjtEsdCq1J3ekFKhPm7i6c4YntgWRSLOsS5WcRJeAVNTaRQKBZiGQcKqC6YgPH+jJh+y059AKCSJ0Ycvx9FEu14e9fREtoihiRlMZvJ4aidIMgUgOUppQO1/G5g2zXCcJmCXngYih4Pd966CjWeW8fbpLFK/z2Oh4GNHUwzPPKILtqKomiGjZrf/INLsnB4nRVFiERPNGzjKxWXM/JnFN4O/4vLwLMquDmZg03pQtRUxu82pCo+mi2DMk5wG7KItWJ9w/QeKi8u4NnULLF6C7wtsT9CrkHQwMx+gs9lGzy5Oo1hJEQnWM01saTFKgaFucpuf56njyUzTgZGvRFkeKS0v4aeJKFp22/DIKFkLfPBSBEUXiNcwRElt2dcIpIfYraEu0IuZES1yIHWqYzI8kZ44QTWfth0HF3708P2EgEEeeuziNUBiPSNQhdOXfAynFSIEZNOsP7bNISBbt880DfbHIXgYgj6b94/scT3vrAjk/QYC7Gy20LiBqkbPy2JRYWhKIDMXYMtGC83U9JrlYsnEaNqbN2ynN/1556W7APWfxtdG9siS/5mUrMH3XMqXIGm6PTQwPV2kR1AOhaQeJJnMFNl7Ys7ByTOdg9pfr6o6VQ4aXxltUSI4ogLxglKqVgmdtEohtDkzLe10g3H+pU0yr55pv1rxrHz/Bbhy2fjGaAtKqkcp75D0/Hp9btj2NGPWCTj+xfSprskV2+r9b8fIwc8OtmmdAAAAAElFTkSuQmCC"
  52.  
  53. switch (currentHost) {
  54. case 'iopscience.iop.org':
  55. doiMeta = document.querySelector("meta[name='citation_doi']");
  56. doi = doiMeta.content;
  57. container = document.querySelector(".content-nav-ul.wd-content-nav");
  58. if (container) {
  59. const linkElement = createLinkElement(`http://adsabs.harvard.edu/abs/${doi}`, 'NASA/ADS');
  60. const listItem = document.createElement('li');
  61. listItem.append(linkElement);
  62. insertLink(container, listItem);
  63. }
  64. break;
  65.  
  66. case 'www.nature.com':
  67. doiMeta = document.querySelector("meta[name='citation_doi']");
  68. doi = doiMeta.content;
  69. container = document.querySelector(".c-article-info-details");
  70. if (container) {
  71. const linkElement = createLinkElement(`http://adsabs.harvard.edu/abs/${doi}`, 'NASA/ADS', 'c-article-info-details__cite-as');
  72. insertLink(container, linkElement, false);
  73. }
  74. break;
  75.  
  76. case 'science.sciencemag.org':
  77. doiMeta = document.querySelector("meta[name='citation_doi']");
  78. doi = doiMeta.content;
  79. container = document.querySelector(".article__tools");
  80. if (container) {
  81. const linkElement = document.createElement('div');
  82. const anchor = createLinkElement(`http://adsabs.harvard.edu/abs/${doi}`, ' NASA/ADS');
  83. const icon = document.createElement('img');
  84. icon.src = adsFavicon;
  85. icon.style = 'display:inline-block;vertical-align: middle;';
  86. linkElement.append(icon, anchor);
  87. const listItem = document.createElement('li');
  88. listItem.append(linkElement);
  89. insertLink(container, listItem);
  90. }
  91. break;
  92.  
  93. case 'www.science.org':
  94. doiMeta = document.querySelector("meta[scheme='doi']");
  95. doi = doiMeta.content;
  96. container = document.querySelector(".info-panel__right-content");
  97. if (container) {
  98. const linkElement = createLinkElement(`http://adsabs.harvard.edu/abs/${doi}`, '');
  99. const icon = document.createElement('img');
  100. icon.src = adsFavicon;
  101. icon.style = 'display:inline-block;vertical-align: middle;';
  102. const listItem = document.createElement('li');
  103. linkElement.append(icon);
  104. listItem.append(linkElement);
  105. insertLink(container, listItem);
  106. }
  107. break;
  108.  
  109. case 'www.annualreviews.org':
  110. doiMeta = document.querySelector("meta[name='dc.identifier']");
  111. doi = doiMeta.content;
  112. container = document.querySelector(".navbar-nav--article-nav-right");
  113. if (container) {
  114. const linkElement = createLinkElement(`http://adsabs.harvard.edu/abs/${doi}`, 'NASA/ADS');
  115. linkElement.style = 'color: inherit;';
  116. const icon = document.createElement('img');
  117. icon.src = adsFavicon;
  118. icon.style = 'display:inline-block;vertical-align: middle;';
  119. const listItem = document.createElement('li');
  120. linkElement.prepend(icon);
  121. listItem.append(linkElement);
  122. insertLink(container, listItem);
  123. }
  124. break;
  125.  
  126. case 'link.springer.com':
  127. doiMeta = document.querySelector("meta[name='citation_doi']");
  128. doi = doiMeta.content;
  129. container = document.querySelector(".c-article-identifiers--cite-list");
  130. if (container) {
  131. const linkElement = createLinkElement(`http://adsabs.harvard.edu/abs/${doi}`, 'NASA/ADS', 'c-article-identifiers__item');
  132. insertLink(container, linkElement, false);
  133. }
  134. break;
  135.  
  136. // currently not work!!
  137. // case 'www.sciencedirect.com':
  138. // doiMeta = document.querySelector("meta[name='citation_doi']");
  139. // doi = doiMeta.content;
  140. // container = document.querySelector(".banner-options");
  141. // if (container) {
  142. // const linkElement = createLinkElement(`http://adsabs.harvard.edu/abs/${doi}`, 'NASA/ADS');
  143. // insertLink(container, linkElement, false);
  144. // }
  145. // break;
  146.  
  147. // default:
  148. // console.warn('Unsupported website host:', currentHost);
  149. }
  150. })();

QingJ © 2025

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