🏠 Home 

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();
})();