Greasy Fork is available in English.
Open a pinned list when you visit X(Twitter).
当前为
// ==UserScript==
// @name X_Twitter_Pinned_List_Open
// @name:ja X(Twitter)で固定されたリストを開く
// @namespace http://greasyfork.icu/users/1324207
// @match https://x.com/*
// @version 2.3
// @run-at document-start
// @author Lark8037
// @description Open a pinned list when you visit X(Twitter).
// @description:ja X(Twitter)を訪れた時に固定されたリストを開きます。
// @license MIT
// @icon https://abs.twimg.com/favicons/twitter.3.ico
// ==/UserScript==
(() => {
const isSelected = el => el?.getAttribute("aria-selected") === "true";
let observer;
const startObserver = () => {
if (!location.pathname.startsWith("/home")) return;
if (observer) observer.disconnect();
observer = new MutationObserver((_, ob) => {
const tabs = document.querySelectorAll('[role="tab"]');
if (tabs.length < 3) return;
if (!isSelected(tabs[0]) && !isSelected(tabs[1])) return;
if (isSelected(tabs[2])) {
ob.disconnect();
return;
}
tabs[2].click();
ob.disconnect();
});
observer.observe(document.documentElement, {
childList: true,
subtree: true
});
};
startObserver();
const hook = fn => function () {
const r = fn.apply(this, arguments);
queueMicrotask(startObserver);
return r;
};
history.pushState = hook(history.pushState);
history.replaceState = hook(history.replaceState);
window.addEventListener("popstate", startObserver);
})();