Skip to content

Commit 8567a2e

Browse files
committed
优化 [收起当前回答/评论] 功能
1 parent 20c7523 commit 8567a2e

1 file changed

Lines changed: 38 additions & 4 deletions

File tree

Zhihu-Enhanced.user.js

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// ==UserScript==
22
// @name 知乎增强
3-
// @version 1.2.9
3+
// @version 1.3.0
44
// @author X.I.U
55
// @description 移除登录弹窗、一键收起回答、收起当前回答/评论(点击两侧空白处)、置顶显示时间、显示问题时间、区分问题文章、默认高清原图、默认站外直链
66
// @match *://www.zhihu.com/*
@@ -389,8 +389,8 @@ function collapsedNowAnswer(selectors){
389389
document.querySelector(selectors).onclick = function(event){
390390
if (event.target==this) {
391391
let rightButton = document.querySelector('.ContentItem-actions.Sticky.RichContent-actions.is-fixed.is-bottom')
392-
if(rightButton) {
393-
// 先判断是否展开了评论(非评论弹窗)
392+
if(rightButton) { // 悬浮 [收起回答]
393+
// 固定 [收起评论]
394394
let commentCollapseButton = rightButton.querySelector('button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel')
395395
if(commentCollapseButton && commentCollapseButton.innerText.indexOf("收起评论") > -1) {
396396
commentCollapseButton.click(); // 收起评论
@@ -399,19 +399,53 @@ function collapsedNowAnswer(selectors){
399399
if(rightButton && rightButton.attributes[0].name === "data-zop-retract-question") {
400400
rightButton.click(); // 收起回答
401401
}
402+
}else{ // 固定 [收起回答]
403+
document.querySelectorAll('.ContentItem-rightButton').forEach(function (el) {
404+
if (el.attributes[0].name === "data-zop-retract-question") {
405+
if (isElementInViewport(el)) {
406+
let commentCollapseButton = document.querySelector('.ContentItem-rightButton').parentNode.querySelector('button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel')
407+
if(commentCollapseButton && commentCollapseButton.innerText.indexOf("收起评论") > -1) {
408+
commentCollapseButton.click(); // 收起评论
409+
}
410+
el.click()
411+
}
412+
}
413+
})
402414
}
403415

404-
// 如果当前在看评论,则收起评论
416+
// 悬浮 [收起评论]
405417
let commentCollapseButton = document.querySelector('.CommentCollapseButton')
406418
if(commentCollapseButton) {
407419
commentCollapseButton.click();
420+
}else{ // 固定 [收起评论](针对短篇没有收起按钮的回答)
421+
document.querySelectorAll('button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel').forEach(function (el) {
422+
if (el.innerText.indexOf("收起评论") > -1) {
423+
if (isElementInViewport(el)) {
424+
el.click()
425+
}
426+
}
427+
})
408428
}
409429
}
410430
}
411431
}
412432
}
413433

414434

435+
//获取元素是否在可视区域
436+
function isElementInViewport(el) {
437+
let rect = el.getBoundingClientRect();
438+
return (
439+
rect.top >= 0 &&
440+
rect.left >= 0 &&
441+
rect.bottom <=
442+
(window.innerHeight || document.documentElement.clientHeight) &&
443+
rect.right <=
444+
(window.innerWidth || document.documentElement.clientWidth)
445+
);
446+
}
447+
448+
415449
var postNum;
416450
// 区分问题文章
417451
function addTypeTips() {

0 commit comments

Comments
 (0)