Greasy Fork 还支持 简体中文。

docjar-helper

hide line numbers for docjar

  1. // ==UserScript==
  2. // @name docjar-helper
  3. // @namespace com.docjar-helper
  4. // @description hide line numbers for docjar
  5. // @include http://www.docjar.com/html/*.java.html*
  6. // @version 1.1.1
  7. // @grant none
  8. // ==/UserScript==
  9.  
  10. function getCookie(c_name) {
  11. if (document.cookie.length > 0) {
  12. c_start = document.cookie.indexOf(c_name + "=");
  13. if (c_start != -1) {
  14. c_start = c_start + c_name.length + 1 ;
  15. c_end = document.cookie.indexOf(";", c_start);
  16. if (c_end == -1) {
  17. c_end = document.cookie.length;
  18. }
  19. return unescape(document.cookie.substring(c_start, c_end));
  20. }
  21. }
  22. return "";
  23. }
  24.  
  25. function setCookie (c_name, value, expiresecs) {
  26. var exdate = new Date();
  27. exdate.setSeconds(exdate.getSeconds() + expiresecs);
  28. document.cookie = c_name + "=" + escape(value) + ((expiresecs == null) ? "" : ";expires=" + exdate.toGMTString());
  29. }
  30.  
  31. var pre = document.getElementsByTagName("pre")[0];
  32.  
  33. var ognlHTML = pre.innerHTML;
  34.  
  35. function clipLineNumber(ognlHTML) {
  36. return ognlHTML.replace(new RegExp("[\\s0-9]{5}\\s \\s", "ig"), "");
  37. }
  38.  
  39. var clippedHTML = clipLineNumber(ognlHTML);
  40.  
  41. var headDiv = document.getElementsByTagName("div")[0];
  42.  
  43. var sharp = document.createTextNode("# ");
  44. var hideArchor = document.createElement("a");
  45. var showArchor = document.createElement("a");
  46. hideArchor.innerHTML = "hide line numbers";
  47. showArchor.innerHTML = "show line numbers";
  48.  
  49. headDiv.appendChild(document.createTextNode("# ["));
  50. headDiv.appendChild(hideArchor);
  51. headDiv.appendChild(document.createTextNode(" | "));
  52. headDiv.appendChild(showArchor);
  53. headDiv.appendChild(document.createTextNode("]"));
  54.  
  55. function hideLineNum() {
  56. pre.innerHTML = clippedHTML;
  57. showArchor.onclick = showLineNum;
  58. hideArchor.onclick = null;
  59. showArchor.href = "#show-line-numbers";
  60. hideArchor.removeAttribute("href");
  61. location.hash = "hide-line-numbers";
  62. setCookie("line-number-display", "hidden");
  63. }
  64.  
  65. function showLineNum() {
  66. pre.innerHTML = ognlHTML;
  67. hideArchor.onclick = hideLineNum;
  68. showArchor.onclick = null;
  69. hideArchor.href = "#hide-line-numbers";
  70. showArchor.removeAttribute("href");
  71. location.hash = "show-line-numbers";
  72. setCookie("line-number-display", "onshow");
  73. }
  74.  
  75. if (location.hash == "#hide-line-numbers") {
  76. hideLineNum();
  77. } else if (location.hash == "#show-line-numbers") {
  78. showLineNum();
  79. } else if (getCookie("line-number-display") == "onshow") {
  80. showLineNum();
  81. } else if (getCookie("line-number-display") == "hidden") {
  82. hideLineNum();
  83. } else {
  84. showLineNum();
  85. }