11// ==UserScript==
22// @name 知乎增强
3- // @version 1.6.0
3+ // @version 1.6.1
44// @author X.I.U
55// @description 移除登录弹窗、默认收起回答、一键收起回答、收起当前回答/评论(点击两侧空白处)、快捷回到顶部(右键两侧空白处)、屏蔽用户 (发布的内容)、屏蔽关键词(标题/评论)、屏蔽盐选内容、展开问题描述、置顶显示时间、显示问题时间、区分问题文章、直达问题按钮、默认高清原图、默认站外直链
66// @match *://www.zhihu.com/*
@@ -97,10 +97,10 @@ function getCollapsedAnswerObserver() {
9797 if ( ! mutation . target . classList . contains ( 'RichContent' ) ) continue
9898 for ( const addedNode of mutation . addedNodes ) {
9999 if ( addedNode . nodeType != Node . ELEMENT_NODE ) continue
100- const button = addedNode . querySelector ( '.ContentItem-actions.Sticky [data-zop-retract-question]' )
100+ const button = addedNode . querySelector ( '.ContentItem-actions.Sticky [data-zop-retract-question]' ) ;
101101 if ( button ) {
102- mutation . target . setAttribute ( 'script-collapsed' , '' )
103- button . click ( )
102+ mutation . target . setAttribute ( 'script-collapsed' , '' ) ;
103+ button . click ( ) ;
104104 return
105105 }
106106 }
@@ -109,20 +109,20 @@ function getCollapsedAnswerObserver() {
109109
110110 observer . start = function ( ) {
111111 if ( ! this . _active ) {
112- this . observe ( document , { childList : true , subtree : true } )
113- this . _active = true
112+ this . observe ( document , { childList : true , subtree : true } ) ;
113+ this . _active = true ;
114114 }
115115 }
116116 observer . end = function ( ) {
117117 if ( this . _active ) {
118- this . disconnect ( )
118+ this . disconnect ( ) ;
119119 }
120120 }
121121
122122 window . addEventListener ( 'locationchange' , function ( ) {
123- observer [ location . href . indexOf ( '/answer/' ) === - 1 ? 'start' : 'end' ] ( )
123+ observer [ location . href . indexOf ( '/answer/' ) === - 1 ? 'start' : 'end' ] ( ) ;
124124 } )
125- window . _collapsedAnswerObserver = observer
125+ window . _collapsedAnswerObserver = observer ;
126126 }
127127 return window . _collapsedAnswerObserver
128128}
@@ -131,9 +131,9 @@ function getCollapsedAnswerObserver() {
131131// 默认收起回答
132132function defaultCollapsedAnswer ( ) {
133133 if ( ! menu_value ( 'menu_defaultCollapsedAnswer' ) ) return
134- const observer = getCollapsedAnswerObserver ( )
134+ const observer = getCollapsedAnswerObserver ( ) ;
135135 if ( location . href . indexOf ( '/answer/' ) === - 1 ) {
136- observer . start ( )
136+ observer . start ( ) ;
137137 }
138138}
139139
@@ -147,27 +147,27 @@ function collapsedAnswer() {
147147 document . getElementById ( 'collapsed-button' ) . onclick = function ( ) {
148148 document . querySelectorAll ( '[script-collapsed]' ) . forEach ( function ( scriptCollapsed ) {
149149 scriptCollapsed . querySelectorAll ( '.ContentItem-actions [data-zop-retract-question], .ContentItem-actions.Sticky [data-zop-retract-question]' ) . forEach ( function ( button ) {
150- button . click ( )
150+ button . click ( ) ;
151151 } )
152152 } )
153153 document . querySelectorAll ( ':not([script-collapsed]) .ContentItem-actions.Sticky [data-zop-retract-question]' ) . forEach ( function ( button ) {
154- let el = button . parentElement
155- while ( ! el ? .classList . contains ( 'RichContent' ) ) {
156- el = el . parentElement
154+ let el = button . parentElement ;
155+ while ( ! el . classList . contains ( 'RichContent' ) ) {
156+ el = el . parentElement ;
157157 }
158158 if ( el ) {
159- el . setAttribute ( 'script-collapsed' , '' )
159+ el . setAttribute ( 'script-collapsed' , '' ) ;
160160 }
161- button . click ( )
161+ button . click ( ) ;
162162 } )
163- const ob = getCollapsedAnswerObserver ( )
164- ob . start ( )
165- if ( ! menu_value ( 'menu_defaultCollapsedAnswer' ) && ! ob . _disconnectListener ) {
163+ const observer = getCollapsedAnswerObserver ( ) ;
164+ observer . start ( ) ;
165+ if ( ! menu_value ( 'menu_defaultCollapsedAnswer' ) && ! observer . _disconnectListener ) {
166166 window . addEventListener ( 'locationchange' , function ( ) {
167- ob . end ( )
168- window . _collapsedAnswerObserver = null
167+ observer . end ( ) ;
168+ window . _collapsedAnswerObserver = null ;
169169 } )
170- ob . _disconnectListener = true
170+ observer . _disconnectListener = true ;
171171 }
172172 }
173173 }
@@ -871,6 +871,16 @@ function addTypeTips() {
871871 } ) ;
872872 observer . observe ( document , { childList : true , subtree : true } ) ;
873873
874+ window . addEventListener ( 'locationchange' , function ( ) {
875+ if ( location . pathname . indexOf ( '/people/' ) > - 1 ) {
876+ if ( location . pathname . split ( '/' ) . length === 3 ) {
877+ observer . observe ( document , { childList : true , subtree : true } ) ;
878+ } else {
879+ observer . disconnect ( ) ;
880+ }
881+ }
882+ } )
883+
874884 function addTypeTips_ ( titleA ) {
875885 if ( ! titleA ) return // 判断是否为真
876886 if ( titleA . querySelector ( 'small.zhihu_e_tips' ) ) return // 判断是否已添加
@@ -947,7 +957,7 @@ function removeLogin() {
947957 for ( const target of mutation . addedNodes ) {
948958 if ( target . nodeType != 1 ) return
949959 if ( target . querySelector ( '.signFlowModal' ) ) {
950- let button = target . getElementsByClassName ( ' Button Modal-closeButton Button--plain') [ 0 ] ;
960+ let button = target . querySelector ( '. Button. Modal-closeButton. Button--plain') ;
951961 if ( button ) button . click ( ) ;
952962 }
953963 }
@@ -965,7 +975,6 @@ function removeLogin() {
965975 const observer = new MutationObserver ( removeLoginModal ) ;
966976 observer . observe ( document , { childList : true , subtree : true } ) ;
967977 document . querySelector ( 'button.AppHeader-login' ) . onclick = function ( ) { location . href = 'https://www.zhihu.com/signin' ; } // [登录] 按钮跳转至登录页面
968- document . querySelector ( '.AppHeader-profile button.Button--primary' ) . onclick = function ( ) { location . href = 'https://www.zhihu.com/signin' ; } // [加入知乎] 按钮跳转至注册页面(实际上是同一个页面)
969978 }
970979 }
971980}
@@ -980,7 +989,7 @@ function closeFloatingComments() {
980989 if ( target . querySelector ( '.Modal-backdrop' ) ) {
981990 document . querySelector ( '.Modal-backdrop' ) . onclick = function ( event ) {
982991 if ( event . target == this ) {
983- let button = document . getElementsByClassName ( ' Button Modal-closeButton Button--plain') [ 0 ] ;
992+ let button = document . querySelector ( '. Button. Modal-closeButton. Button--plain') ;
984993 if ( button ) button . click ( ) ;
985994 }
986995 }
@@ -1317,7 +1326,7 @@ function questionInvitation(){
13171326 collapsedNowAnswer ( '.ContentLayout' ) ; // 收起当前回答 + 快捷返回顶部
13181327 setInterval ( topTime_people , 300 ) ; // 置顶显示时间
13191328 addTypeTips ( ) ; // 区分问题文章
1320- addToQuestion ( ) ; // 直达问题按钮
1329+ addToQuestion ( ) ; // 直达问题按钮
13211330 blockUsers ( 'topic' ) ; // 屏蔽指定用户
13221331 blockKeywords ( 'topic' ) ; // 屏蔽指定关键词
13231332 }
0 commit comments