33// @name :zh-CN 知乎增强
44// @name :zh-TW 知乎增強
55// @name :en Zhihu enhancement
6- // @version 2.3.2
6+ // @version 2.3.3
77// @author X.I.U
8- // @description 屏蔽首页视频、默认收起回答、快捷收起回答/评论(左键两侧)、快捷回到顶部(右键两侧)、屏蔽用户、屏蔽关键词、移除高亮链接、屏蔽盐选内容/热榜杂项、净化搜索热门、净化标题消息、展开问题描述、显示问题作者、置顶显示时间、完整问题时间、区分问题文章、直达问题按钮、默认高清原图(无水印)、 默认站外直链
9- // @description :zh-TW 屏蔽首頁視頻、默認收起回答、快捷收起回答/評論、快捷回到頂部、屏蔽用戶、屏蔽關鍵詞、移除高亮鏈接、屏蔽鹽選內容、淨化搜索熱門、淨化標題消息、置頂顯示時間、完整問題時間、區分問題文章、默認高清原圖 、默認站外直鏈...
8+ // @description 屏蔽首页视频、默认收起回答、快捷收起回答/评论(左键两侧)、快捷回到顶部(右键两侧)、屏蔽用户、屏蔽关键词、移除高亮链接、屏蔽盐选内容/热榜杂项、净化搜索热门、净化标题消息、展开问题描述、显示问题作者、默认高清原图(无水印)、 置顶显示时间、完整问题时间、区分问题文章、直达问题按钮、默认站外直链...
9+ // @description :zh-TW 屏蔽首頁視頻、默認收起回答、快捷收起回答/評論、快捷回到頂部、屏蔽用戶、屏蔽關鍵詞、移除高亮鏈接、屏蔽鹽選內容、淨化搜索熱門、淨化標題消息、默認高清原圖(無水印)、 置頂顯示時間、完整問題時間、區分問題文章、默認站外直鏈...
1010// @description :en A more personalized Zhihu experience~
1111// @match *://www.zhihu.com/*
1212// @match *://zhuanlan.zhihu.com/*
@@ -649,14 +649,23 @@ function blockUsers(type) {
649649 for ( const target of mutation . addedNodes ) {
650650 if ( target . nodeType != 1 ) return
651651 //console.log(target, target.className)
652- if ( target . className && ( target . className . indexOf ( 'Popover-content Popover-content--top HoverCard-popoverTarget' ) > - 1 || target . className . indexOf ( 'Popover-content Popover-content--bottom HoverCard-popoverTarget' ) > - 1 ) || target . querySelector ( '.Popover-content.Popover-content--top.HoverCard-popoverTarget' ) || target . querySelector ( '.Popover-content.Popover-content--bottom.HoverCard-popoverTarget' ) ) {
653- let item = target . querySelector ( '.MemberButtonGroup.ProfileButtonGroup.HoverCard-buttons' ) ,
654- item1 = target . querySelector ( 'a.UserLink-link' ) ,
655- name = item1 . textContent ,
656- userid = item1 . href . split ( '/' ) [ 4 ] ;
657- if ( item && ! target . querySelector ( 'button[data-name][data-userid]' ) ) {
658- item . insertAdjacentHTML ( 'beforeend' , `<button type="button" data-name="${ name } " data-userid="${ userid } " class="Button FollowButton Button--primary Button--red" style="width: 100%;margin: 7px 0 0 0;"><span style="display: inline-flex; align-items: center;"><svg class="Zi Zi--Plus FollowButton-icon" fill="currentColor" viewBox="0 0 24 24" width="1.2em" height="1.2em"><path d="M18.376 5.624c-3.498-3.499-9.254-3.499-12.752 0-3.499 3.498-3.499 9.254 0 12.752 3.498 3.499 9.254 3.499 12.752 0 3.499-3.498 3.499-9.14 0-12.752zm-1.693 1.693c2.37 2.37 2.596 6.094.678 8.69l-9.367-9.48c2.708-1.919 6.32-1.58 8.69.79zm-9.48 9.48c-2.37-2.37-2.595-6.095-.676-8.69l9.48 9.48c-2.822 1.918-6.433 1.58-8.803-.79z" fill-rule="evenodd"></path></svg></span>屏蔽用户</button>` ) ;
659- item . lastElementChild . onclick = function ( ) { blockUsers_button_add ( this . dataset . name , this . dataset . userid , false ) }
652+ if ( target . className && ( target . className . indexOf ( 'css-' ) == 0 || target . style == 'opacity: 1;' ) ) {
653+ const item = target . querySelector ( '.MemberButtonGroup.ProfileButtonGroup.HoverCard-buttons' ) ,
654+ item1 = target . querySelector ( 'img.Avatar+div span.UserLink>a.UserLink-link[data-za-detail-view-element_name=User]' ) ;
655+ if ( item1 ) {
656+ const name = item1 . textContent , userid = item1 . href . split ( '/' ) [ 4 ] , users = menu_value ( 'menu_customBlockUsers' ) ;
657+ for ( let num = 0 ; num < users . length ; num ++ ) { // 判断是否已存在
658+ if ( users [ num ] === name ) { // 已存在
659+ target . querySelectorAll ( '.Button.Button--primary.Button--red' ) . forEach ( function ( item ) { item . style . display = 'none' ; } ) // 隐藏知乎自带的已屏蔽按钮
660+ item . insertAdjacentHTML ( 'afterbegin' , `<button type="button" data-name="${ name } " data-userid="${ userid } " class="Button FollowButton Button--primary Button--red"><span style="display: inline-flex; align-items: center;"><svg width="1.2em" height="1.2em" viewBox="0 0 24 24" class="Zi Zi--Ban" fill="currentColor"><path fill-rule="evenodd" d="M16.346 18.113a7.5 7.5 0 0 1-10.46-10.46l10.46 10.46Zm1.767-1.767L7.654 5.886a7.5 7.5 0 0 1 10.46 10.46ZM22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10Z" clip-rule="evenodd"></path></svg></span> 已屏蔽</button>` ) ;
661+ item . firstElementChild . onclick = function ( ) { this . disabled = true ; blockUsers_button_del ( this . dataset . name , this . dataset . userid , false ) }
662+ return
663+ }
664+ } ;
665+ if ( item && ! target . querySelector ( 'button[data-name][data-userid]' ) ) {
666+ item . insertAdjacentHTML ( 'beforeend' , `<button type="button" data-name="${ name } " data-userid="${ userid } " class="Button FollowButton Button--primary Button--red" style="width: 100%;margin: 7px 0 0 0;"><span style="display: inline-flex; align-items: center;"><svg width="1.2em" height="1.2em" viewBox="0 0 24 24" class="Zi Zi--Ban" fill="currentColor"><path fill-rule="evenodd" d="M16.346 18.113a7.5 7.5 0 0 1-10.46-10.46l10.46 10.46Zm1.767-1.767L7.654 5.886a7.5 7.5 0 0 1 10.46 10.46ZM22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10Z" clip-rule="evenodd"></path></svg></span> 屏蔽用户</button>` ) ;
667+ item . lastElementChild . onclick = function ( ) { this . disabled = true ; blockUsers_button_add ( this . dataset . name , this . dataset . userid , false ) }
668+ }
660669 }
661670 }
662671 }
@@ -675,14 +684,14 @@ function blockUsers(type) {
675684 for ( let num = 0 ; num < users . length ; num ++ ) { // 判断是否已存在
676685 if ( users [ num ] === name ) { // 已存在
677686 document . querySelectorAll ( '.Button.Button--primary.Button--red' ) . forEach ( function ( item ) { item . style . display = 'none' ; } ) // 隐藏知乎自带的已屏蔽按钮
678- item . insertAdjacentHTML ( 'beforeend ' , `<button type="button" data-name="${ name } " data-userid="${ userid } " class="Button FollowButton Button--primary Button--red" style="margin: 0 0 0 12px;"><span style="display: inline-flex; align-items: center;"><svg class="Zi Zi--Plus FollowButton-icon" fill="currentColor " viewBox="0 0 24 24" width="1.2em" height="1.2em "><path d="M18.376 5.624c-3.498-3.499-9.254-3.499-12.752 0-3.499 3.498-3.499 9.254 0 12.752 3.498 3.499 9.254 3.499 12.752 0 3.499-3.498 3.499-9.14 0-12.752zm-1.693 1.693c2.37 2.37 2.596 6.094.678 8.69l-9.367-9.48c2.708-1.919 6.32-1.58 8.69.79zm-9.48 9.48c-2.37-2.37-2.595-6.095-.676-8.69l9.48 9.48c-2.822 1.918-6.433 1.58-8.803-.79z" fill -rule="evenodd"></path></svg></span>取消屏蔽 </button>` ) ;
679- item . lastElementChild . onclick = function ( ) { blockUsers_button_del ( this . dataset . name , this . dataset . userid , true ) }
687+ item . insertAdjacentHTML ( 'afterbegin ' , `<button type="button" data-name="${ name } " data-userid="${ userid } " class="Button FollowButton Button--primary Button--red" style="margin: 0 0 0 12px;"><span style="display: inline-flex; align-items: center;"><svg width="1.2em" height="1.2em " viewBox="0 0 24 24" class="Zi Zi--Ban" fill="currentColor "><path fill-rule="evenodd" d="M16.346 18.113a7.5 7.5 0 0 1-10.46-10.46l10.46 10.46Zm1.767-1.767L7.654 5.886a7.5 7.5 0 0 1 10.46 10.46ZM22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10Z" clip -rule="evenodd"></path></svg></span> 已屏蔽 </button>` ) ;
688+ item . firstElementChild . onclick = function ( ) { this . disabled = true ; blockUsers_button_del ( this . dataset . name , this . dataset . userid , true ) }
680689 return
681690 }
682691 } ;
683692 if ( item ) {
684- item . insertAdjacentHTML ( 'beforeend' , `<button type="button" data-name="${ name } " data-userid="${ userid } " class="Button FollowButton Button--primary Button--red" style="margin: 0 0 0 12px;"><span style="display: inline-flex; align-items: center;"><svg class="Zi Zi--Plus FollowButton-icon" fill="currentColor " viewBox="0 0 24 24" width="1.2em" height="1.2em "><path d="M18.376 5.624c-3.498-3.499-9.254-3.499-12.752 0-3.499 3.498-3.499 9.254 0 12.752 3.498 3.499 9.254 3.499 12.752 0 3.499-3.498 3.499-9.14 0-12.752zm-1.693 1.693c2.37 2.37 2.596 6.094.678 8.69l-9.367-9.48c2.708-1.919 6.32-1.58 8.69.79zm-9.48 9.48c-2.37-2.37-2.595-6.095-.676-8.69l9.48 9.48c-2.822 1.918-6.433 1.58-8.803-.79z" fill -rule="evenodd"></path></svg></span>屏蔽用户</button>` ) ;
685- item . lastElementChild . onclick = function ( ) { blockUsers_button_add ( this . dataset . name , this . dataset . userid , true ) }
693+ item . insertAdjacentHTML ( 'beforeend' , `<button type="button" data-name="${ name } " data-userid="${ userid } " class="Button FollowButton Button--primary Button--red" style="margin: 0 0 0 12px;"><span style="display: inline-flex; align-items: center;"><svg width="1.2em" height="1.2em " viewBox="0 0 24 24" class="Zi Zi--Ban" fill="currentColor "><path fill-rule="evenodd" d="M16.346 18.113a7.5 7.5 0 0 1-10.46-10.46l10.46 10.46Zm1.767-1.767L7.654 5.886a7.5 7.5 0 0 1 10.46 10.46ZM22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10Z" clip -rule="evenodd"></path></svg></span> 屏蔽用户</button>` ) ;
694+ item . lastElementChild . onclick = function ( ) { this . disabled = true ; blockUsers_button_add ( this . dataset . name , this . dataset . userid , true ) }
686695 }
687696 }
688697
0 commit comments