知乎回答排序插件2021修复版

为知乎问题页面多添加两种排序方式,使用时建议下滑刷新足够的回答,再返回页头点击排序

  1. // ==UserScript==
  2. // @name 知乎回答排序插件2021修复版
  3. // @description 为知乎问题页面多添加两种排序方式,使用时建议下滑刷新足够的回答,再返回页头点击排序
  4. // @match https://www.zhihu.com/question/*
  5. // @exclude https://www.zhihu.com/question/*/answer/*
  6. // @copyright 2017+, @余博伦
  7. // @version 0.0.1.20211221031320
  8. // @namespace https://gf.qytechs.cn/users/473469
  9. // ==/UserScript==
  10. /**
  11. 参考自https://gf.qytechs.cn/zh-CN/scripts/30295-%E7%9F%A5%E4%B9%8E%E5%9B%9E%E7%AD%94%E6%8E%92%E5%BA%8F%E6%8F%92%E4%BB%B6
  12. 十分感谢原作者
  13. 去除了对jquery的依赖
  14.  
  15. */
  16. (function() {
  17. 'use strict';
  18. let wrapper = document.querySelector('#QuestionAnswers-answers')
  19. let toolbar = document.querySelector('#root > div > main > div > div:nth-child(10) > div:nth-child(2) > div > div.QuestionHeader-footer > div > div > div.QuestionButtonGroup')
  20.  
  21. toolbar.style.width= '24rem'
  22. let byVoteBtn = document.createElement('button')
  23. byVoteBtn.id = "orderByVote"
  24. byVoteBtn.className = "Button Button--primary Button--green"
  25. byVoteBtn.innerText = "按赞数排序"
  26. toolbar.append(byVoteBtn);
  27. let byCommentsBtn = document.createElement('button')
  28. byCommentsBtn.id = "orderByComments"
  29. byCommentsBtn.className = "Button Button--primary Button--red"
  30. byCommentsBtn.innerText = "按评论数排序"
  31. toolbar.append(byCommentsBtn);
  32. // Your code here...
  33. var orderByVote = function(){
  34. let answerList = wrapper.querySelector(".List")
  35. let answerItems = answerList.querySelectorAll(".List-item")
  36. answerList.innerHTML=""
  37. let orderedAnswers = [].slice.call(answerItems).sort(function(a, b) {
  38. return b.querySelector('.VoteButton--up').innerText.split(" ")[1] - a.querySelector('.VoteButton--up').innerText.split(" ")[1];
  39. })
  40. orderedAnswers.forEach(function (p) {
  41. answerList.appendChild(p);
  42. });
  43. };
  44.  
  45. var orderByComments = function () {
  46. let answerList = wrapper.querySelector(".List")
  47. let answerItems = answerList.querySelectorAll(".List-item")
  48. answerList.innerHTML=""
  49. let orderedAnswers = [].slice.call(answerItems).sort(function(a, b) {
  50. return b.querySelector('.ContentItem-actions .Button--plain').innerText.replace(/ 条评论/g, '') - a.querySelector('.ContentItem-actions .Button--plain').innerText.replace(/ 条评论/g, '')
  51. })
  52. orderedAnswers.forEach(function (p) {
  53. answerList.appendChild(p);
  54. });
  55. };
  56. //event listeners
  57. byVoteBtn.addEventListener("click", orderByVote);
  58. byCommentsBtn.addEventListener("click", byCommentsBtn);
  59. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址