🏠 Home 

让微博按正确的时间线排序

自动切换到最新微博,恢复正确的时间线


安装此脚本?
// ==UserScript==
// @name         让微博按正确的时间线排序
// @namespace    https://hehome.xyz/
// @version      0.2.6
// @icon         https://weibo.com/favicon.ico
// @description  自动切换到最新微博,恢复正确的时间线
// @author       hemengyang
// @match        https://weibo.com/*
// @match        https://www.weibo.com/*
// @grant        none
// ==/UserScript==
(function () {
'use strict';
// 判断是否是新版微博
var isNewVersion = document.querySelector('a.gn_name') === null;
if (isNewVersion) {
// 新版微博
// 切换到最新微博
function switchToLatest() {
// 侧边栏的最新微博按钮
var latestButton = document.querySelector('div[title="最新微博"]');
if (latestButton === null) {
// 无法找到最新微博的按钮,且不在主页时,
// 会尝试重新加载网页
if (window.location.pathname !== '/') {
window.location = '/';
}
} else {
latestButton.click();
}
}
// 首页按钮
var homeButton = document.querySelector('div[aria-label="首页"]');
if (homeButton !== null) {
// 通过 div[aria-label="首页"] 获取元素的父元素也能单击回到全部关注
// 需要替换那个元素,否则单击主页按钮边缘会回到全部关注而不是最新微博
homeButton = homeButton.parentElement
// 替换首页按钮点击事件
homeButton.addEventListener('click', (e) => { switchToLatest(); e.stopPropagation(); e.preventDefault(); }, true);
}
// 左上角的图标
var homeIcon = document.querySelector('a[aria-label="Weibo"]');
if (homeIcon !== null) {
// 替换左上角的微博图标点击事件
homeIcon.addEventListener('click', (e) => { switchToLatest(); e.stopPropagation(); e.preventDefault(); }, true);
}
// 每隔 500 毫秒检查一下
// 如果在微博主页自动切换到最新微博
var switchInterval = setInterval(function () {
if (window.location.pathname === '/') {
switchToLatest();
} else {
clearInterval(switchInterval);
}
}, 500);
}
else {
// 老版微博
var userId = document.querySelector('a.gn_name').href.split('/')[3];
var isHome = window.location.pathname.split('/')[3] === 'home';
var isNew = window.location.search.indexOf('is_new') !== -1;
// 自动切换到最新微博
if (isHome && !isNew) {
window.location = '/home?is_new=1';
}
// 替换左上角的微博图标点击后网址为最新微博
document.querySelector('a.box').setAttribute('href', '/u/' + userId + '/home?is_new=1');
}
})();