🏠 

Greasy Fork is available in English.

虎扑帖子列表显示优化

优化虎扑帖子列表页的显示效果,支持按回复数和时间排序


安装此脚本?
// ==UserScript==
// @name         虎扑帖子列表显示优化
// @namespace    http://tampermonkey.net/
// @version      2.0
// @description  优化虎扑帖子列表页的显示效果,支持按回复数和时间排序
// @author       你的名字
// @match        https://bbs.hupu.com/*
// @license      LGPL
// ==/UserScript==
(function() {
'use strict';
// 获取帖子列表容器
const postContainer = document.querySelector('.bbs-sl-web-post');
if (!postContainer) return;
// 获取帖子列表
const postList = postContainer.querySelector('ul');
if (!postList) return;
// 获取表头
const header = postContainer.querySelector('.bbs-sl-web-post-header');
if (!header) return;
// 获取表头中的“回复/浏览”和“时间”元素
const replyHeader = header.children[1];
const timeHeader = header.children[3];
// 默认按“回复/浏览”数排序
sortByReplies();
// 为“回复/浏览”和“时间”表头添加点击事件
replyHeader.addEventListener('click', sortByReplies);
timeHeader.addEventListener('click', sortByTime);
// 按“回复/浏览”数排序
function sortByReplies() {
const posts = Array.from(postList.querySelectorAll('.bbs-sl-web-post-body'));
posts.sort((a, b) => {
const aReplies = parseInt(a.querySelector('.post-datum').textContent.split('/')[0].trim(), 10);
const bReplies = parseInt(b.querySelector('.post-datum').textContent.split('/')[0].trim(), 10);
return bReplies - aReplies;
});
updatePostList(posts);
}
// 按“时间”排序
function sortByTime() {
const posts = Array.from(postList.querySelectorAll('.bbs-sl-web-post-body'));
posts.sort((a, b) => {
const aTime = new Date(`2023-${a.querySelector('.post-time').textContent.trim()}`);
const bTime = new Date(`2023-${b.querySelector('.post-time').textContent.trim()}`);
return bTime - aTime;
});
updatePostList(posts);
}
// 更新帖子列表
function updatePostList(posts) {
postList.innerHTML = '';
posts.forEach(post => postList.appendChild(post));
}
})();