Greasy Fork is available in English.
一键收起回答,默认收起回答
// ==UserScript== // @name 知乎默认收起回答 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 一键收起回答,默认收起回答 // @author xiantong.zou // @match *://www.zhihu.com/question/* // @grant none // @require https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js // ==/UserScript== (function () { 'use strict'; console.log("zhihu collaspe run!"); //收起目前所有 var collapseNow = function(){ $('.RichContent-collapsedText').each(function (_, btn) { return btn.click(); }); }; //收起目前所有 按钮 var setCollapsedButton = function () { var $CornerButtons = $('.CornerButtons'); if (!$CornerButtons.length) return; var $CollapsedTogetherButton = $('.CollapsedTogetherButton'); if ($CollapsedTogetherButton.length) return; var $button = $("<button>\u6536\u8d77\u5168\u90e8</button>") .addClass('Button CornerButton Button--plain CollapsedTogetherButton') .attr('data-tooltip', '一键收起全部') .attr('data-tooltip-position', 'left') .attr('data-tooltip-will-hide-on-click', 'true') .on('click', function () { collapseNow(); }); var $div = $("<div class='CornerAnimayedFlex'></div>").append($button); $div.insertBefore($CornerButtons[0].children[0]); }; var collapseState = false; var collapseStateBtn = null; var updateCollapse = function(){ // $('.RichContent-collapsedText').each(function (_, btn) { return btn.click(); }); //var strOn = "\u9ed8\u8ba4\u6536\u8d77\u003a\u006f\u006e"; //var strOff = "\u9ed8\u8ba4\u6536\u8d77\u003a\u006f\u0066\u0066"; collapseStateBtn.textContent = '收:'+ (collapseState ? 'on' : 'off'); if(collapseState){ collapseNow(); }else{ } }; //默认收起 按钮 var setCollapsedButton2 = function () { var $CornerButtons = $('.CornerButtons'); if (!$CornerButtons.length) return; var $button = $("<button>\u6536</button>") .addClass('Button CornerButton Button--plain CollapsedTogetherButton') .attr('data-tooltip', '是否默认收起回答') .attr('data-tooltip-position', 'left') .attr('data-tooltip-will-hide-on-click', 'true') .on('click', function () { collapseState = !collapseState; updateCollapse(); }); var $div = $("<div class='CornerAnimayedFlex'></div>").append($button); $div.insertBefore($CornerButtons[0].children[0]); collapseStateBtn = $button[0]; updateCollapse(); var answerList = $('.List')[0].children[1].children[0]; var funI = null; var lastAnswerCount = 0; answerList.addEventListener('DOMSubtreeModified', function () { if(lastAnswerCount == answerList.children.length){ return; } lastAnswerCount = answerList.children.length; if(funI != null){ clearTimeout(funI); funI = null; } if(collapseState){ funI = setTimeout(function (){ console.log("collapseNow!!"); collapseNow(); },50); } }, false); }; setCollapsedButton(); setCollapsedButton2(); })();