思否目录

思否文章目录列表

  1. // ==UserScript==
  2. // @name 思否目录
  3. // @namespace http://zszen.github.io
  4. // @version 1.0
  5. // @description 思否文章目录列表
  6. // @author You
  7. // @match https://segmentfault.com/a/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. 'use strict';
  13. let label = 'zszen ';
  14. let isDebug = 1;
  15. let color_major = "#2B4D7C";
  16. let pool = [];
  17. let dic_title = {};
  18.  
  19. var area = ELs('h1', el=>el.className.indexOf("article_title"),null)[0].parentNode;
  20. var titles = ELs('*',null,null,area)
  21. for(var i in titles){
  22. var tagName = titles[i].tagName;
  23. for(var k=1;k<=6;k++){
  24. if(tagName=='H'+k){
  25. pool.push([k,titles[i].textContent.replace(/(\n| )/g,''), titles[i]])
  26. }
  27. }
  28. }
  29.  
  30. var div = TagM('div',null,null, 'border-radius:5px;font-size:13;line-height:17px;overflow:hidden; position:fixed; right:40px; top:9%; z-index:9999;height: auto; width: 250px;border:3px solid '+color_major+';background-color:#ffffff;opacity:.5"></div>');
  31. div.id = 'zszen_jianshu';
  32. div.className = '简书列表';
  33. for(var j in pool){
  34. var t = TagM('h4',div,'<font id="title" style="font-weight:800;color:#65E1FF;font-size:13px">'+pool[j][1]+'</font>','text-align:left;width:500%;line-height:13px;margin-bottom:2px;margin-top:2px;line-height:1;padding-left:2px;padding-top:0px;-webkit-margin-before:.3em;-webkit-margin-after:.3em;-webkit-margin-start: 0px;-webkit-margin-end: 0px;font-weight: bold;');
  35. t.idx = j;
  36. t.addEventListener('click', (evt)=>{
  37. var id = evt.target.idx ? evt.target.idx:evt.target.parentNode.idx;
  38. let target = pool[id][2];
  39. document.documentElement.scrollTop=target.offsetTop
  40. document.body.scrollTop=target.offsetTop
  41. });
  42. }
  43.  
  44.  
  45. //console.log(pool)
  46.  
  47. //搜索
  48. function ELs(tagName, conditionFun, dealFun, parent){
  49. if(parent==null) parent = document;
  50. var tags = [...parent.getElementsByTagName(tagName)];
  51. if(conditionFun){
  52. tags = tags.filter(conditionFun);
  53. }
  54. if(dealFun){
  55. tags.forEach(dealFun);
  56. }
  57. return tags;
  58. }
  59.  
  60. //DivMaker('<a class="aaa" href="123">asdfasdf <h1></a>', 'height:100px', 'a.aaa { color: green; }')
  61. function TagM(tag, parentNode, innerHtml, styleString, cssString){
  62. var divNode = document.createElement(tag);
  63. if(innerHtml!=null) divNode.innerHTML = innerHtml;
  64. if(parentNode==null){
  65. document.body.appendChild(divNode);
  66. }else{
  67. parentNode.appendChild(divNode);
  68. }
  69. if(styleString){
  70. divNode.style = styleString;
  71. }
  72. if(cssString){
  73. var style = document.createElement('style');
  74. style.appendChild(document.createTextNode(cssString));
  75. divNode.appendChild(style);
  76. }
  77. return divNode;
  78. }
  79. })();

QingJ © 2025

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