Greasy Fork

来自缓存

Greasy Fork is available in English.

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

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

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==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');
    }
})();