// ==UserScript== // @name 思否大纲 // @namespace https://github.com/phpluo/userscript // @version 1.1 // @license MIT // @description 思否文章(大纲)目录列表 修改自原 https://greasyfork.org/zh-CN/scripts/407767 // @author phpluo // @match https://segmentfault.com/a/* // @icon https://www.google.com/s2/favicons?sz=64&domain=segmentfault.com // @grant none // @downloadURL https://update.greasyfork.icu/scripts/454472/%E6%80%9D%E5%90%A6%E5%A4%A7%E7%BA%B2.user.js // @updateURL https://update.greasyfork.icu/scripts/454472/%E6%80%9D%E5%90%A6%E5%A4%A7%E7%BA%B2.meta.js // ==/UserScript== (function() { 'use strict'; let label = 'zszen '; let isDebug = 1; let color_major = "#2B4D7C"; let pool = []; let dic_title = {}; var area = ELs('h1', el=>el.className.indexOf("article_title"),null)[0].parentNode; var titles = ELs('*',null,null,area) for(var i in titles){ var tagName = titles[i].tagName; for(var k=1;k<=6;k++){ if(tagName=='H'+k){ pool.push([k,titles[i].textContent.replace(/(\n| )/g,''), titles[i]]) } } } var div = TagM('div',null,null, 'border-radius: 5px;line-height: 17px;z-index: 9999;width: 250px;border: 3px solid rgb(43, 77, 124);background-color: rgb(255, 255, 255);position: fixed; float: left;top: 350px;left: calc(50% - 815px);'); div.id = 'zszen_jianshu'; div.className = '简书列表'; for(var j in pool){ var t = TagM('h4',div,''+pool[j][1]+'','text-align:left;width:100%;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;'); t.idx = j; t.addEventListener('click', (evt)=>{ var id = evt.target.idx ? evt.target.idx:evt.target.parentNode.idx; let target = pool[id][2]; document.documentElement.scrollTop=target.offsetTop document.body.scrollTop=target.offsetTop }); } //console.log(pool) //搜索 function ELs(tagName, conditionFun, dealFun, parent){ if(parent==null) parent = document; var tags = [...parent.getElementsByTagName(tagName)]; if(conditionFun){ tags = tags.filter(conditionFun); } if(dealFun){ tags.forEach(dealFun); } return tags; } //DivMaker('asdfasdf

', 'height:100px', 'a.aaa { color: green; }') function TagM(tag, parentNode, innerHtml, styleString, cssString){ var divNode = document.createElement(tag); if(innerHtml!=null) divNode.innerHTML = innerHtml; if(parentNode==null){ document.body.appendChild(divNode); }else{ parentNode.appendChild(divNode); } if(styleString){ divNode.style = styleString; } if(cssString){ var style = document.createElement('style'); style.appendChild(document.createTextNode(cssString)); divNode.appendChild(style); } return divNode; } })();