Skip to content

Commit 3a239f4

Browse files
committed
修复 [收起当前回答、评论] 功能在部分情况下可能导致下面短回答被收起的问题
1 parent 815ef6e commit 3a239f4

1 file changed

Lines changed: 15 additions & 2 deletions

File tree

Zhihu-Enhanced.user.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// ==UserScript==
22
// @name 知乎增强
3-
// @version 1.8.5
3+
// @version 1.8.6
44
// @author X.I.U
55
// @description 移除登录弹窗、屏蔽首页视频、默认收起回答、快捷收起当前回答/评论(左键两侧空白处)、快捷回到顶部(右键两侧空白处)、屏蔽用户 (发布的内容)、屏蔽关键词(标题/评论)、移除高亮链接、屏蔽盐选内容、净化标题消息、展开问题描述、置顶显示时间、完整问题时间、区分问题文章、直达问题按钮、默认高清原图、默认站外直链
66
// @match *://www.zhihu.com/*
@@ -147,6 +147,9 @@ function getCollapsedAnswerObserver() {
147147
if (!mutation.target.classList.contains('RichContent')) continue
148148
for (const addedNode of mutation.addedNodes) {
149149
if (addedNode.nodeType != Node.ELEMENT_NODE) continue
150+
//console.log(addedNode, addedNode.offsetHeight)
151+
if (addedNode.className == 'RichContent-inner' && addedNode.offsetHeight < 400) return
152+
//console.log(addedNode.offsetHeight)
150153
const button = addedNode.querySelector('.ContentItem-actions.Sticky [data-zop-retract-question]');
151154
if (button) {
152155
mutation.target.setAttribute('script-collapsed', '');
@@ -244,9 +247,11 @@ function collapsedNowAnswer(selectors) {
244247
if (rightButton) {
245248
// 固定的 [收起评论](先看看是否展开评论)
246249
let commentCollapseButton = rightButton.querySelector('button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel:first-of-type')
250+
//console.log('111')
247251
if (commentCollapseButton && commentCollapseButton.textContent.indexOf('收起评论') > -1) commentCollapseButton.click();
248252
// 再去收起回答
249253
rightButton = rightButton.querySelector('.ContentItem-rightButton[data-zop-retract-question]')
254+
//console.log('222')
250255
if (rightButton) rightButton.click();
251256
// 固定在回答底部的 [收起回答](此时正在浏览回答内容 [尾部区域])
252257
} else {
@@ -256,7 +261,9 @@ function collapsedNowAnswer(selectors) {
256261
// 固定的 [收起评论](先看看是否展开评论,即存在 [收起评论] 按钮)
257262
let commentCollapseButton = el.parentNode.querySelector('button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel:first-of-type')
258263
// 如果展开了评论,就收起评论
264+
//console.log('333')
259265
if (commentCollapseButton && commentCollapseButton.textContent.indexOf('收起评论') > -1) commentCollapseButton.click();
266+
//console.log('444')
260267
el.click() // 再去收起回答
261268
answerCollapseButton_ = true; // 如果找到并点击收起了,就没必要执行下面的代码了(可视区域中没有 [收起回答] 时)
262269
break
@@ -269,8 +276,10 @@ function collapsedNowAnswer(selectors) {
269276
// 固定的 [收起评论](先看看是否展开评论,即存在 [收起评论] 按钮)
270277
let commentCollapseButton = el.parentNode.querySelector('button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel:first-of-type')
271278
// 如果展开了评论,就收起评论
279+
//console.log('555')
272280
if (commentCollapseButton && commentCollapseButton.textContent.indexOf('收起评论') > -1) commentCollapseButton.click();
273-
let answerCollapseButton__ = document.querySelector('.ContentItem-rightButton[data-zop-retract-question]');
281+
let answerCollapseButton__ = el.querySelector('.ContentItem-rightButton[data-zop-retract-question]');
282+
//console.log('666')
274283
if (answerCollapseButton__) answerCollapseButton__.click() // 再去收起回答
275284
break
276285
}
@@ -283,13 +292,15 @@ function collapsedNowAnswer(selectors) {
283292
// 悬浮的 [收起评论](此时正在浏览评论内容 [中间区域])
284293
let commentCollapseButton = document.querySelector('.CommentCollapseButton')
285294
if (commentCollapseButton) {
295+
//console.log('777')
286296
commentCollapseButton.click();
287297
} else { // 固定的 [收起评论](此时正在浏览评论内容 [头部区域])
288298
let commentCollapseButton_1 = document.querySelectorAll('.ContentItem-actions > button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel:first-of-type, .ContentItem-action > button.Button.Button--plain.Button--withIcon.Button--withLabel:first-of-type')
289299
if (commentCollapseButton_1.length > 0) {
290300
for (let el of commentCollapseButton_1) {
291301
if (el.textContent.indexOf('收起评论') > -1) {
292302
if (isElementInViewport(el)) {
303+
//console.log('888')
293304
el.click()
294305
commentCollapseButton_ = true // 如果找到并点击了,就没必要执行下面的代码了(可视区域中没有 [收起评论] 时)
295306
break
@@ -304,6 +315,7 @@ function collapsedNowAnswer(selectors) {
304315
if (isElementInViewport(el)) {
305316
let commentCollapseButton = findParentElement(el, 'ContentItem AnswerItem').querySelector('.ContentItem-actions > button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel:first-of-type')
306317
if (commentCollapseButton.textContent.indexOf('收起评论') > -1) {
318+
//console.log('999')
307319
commentCollapseButton.click()
308320
commentCollapseButton__ = true // 如果找到并点击了,就没必要执行下面的代码了(可视区域中没有 评论元素 时)
309321
break
@@ -319,6 +331,7 @@ function collapsedNowAnswer(selectors) {
319331
let commentCollapseButton = findParentElement(el, 'ContentItem AnswerItem').querySelector('.ContentItem-actions > button.Button.ContentItem-action.Button--plain.Button--withIcon.Button--withLabel:first-of-type')
320332
//console.log(commentCollapseButton)
321333
if (commentCollapseButton.textContent.indexOf('收起评论') > -1) {
334+
//console.log('101010')
322335
commentCollapseButton.click()
323336
break
324337
}

0 commit comments

Comments
 (0)