您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Bangumi 目录条目名中文化
// ==UserScript== // @name Bangumi-Index-ch // @namespace https://github.com/bangumi/scripts/liaune // @author upsuper,Liaune // @description Bangumi 目录条目名中文化 // @include /^https?:\/\/((bgm|bangumi)\.tv|chii\.in)\/index\/\d+/ // @version 1.1 // @grant none // ==/UserScript== (function() { var localStorage = window.localStorage, localPrefix = 'ChineseName_', // displayMode: 0 => Display Origin Name as subhead // : 1 => Show Origin Name as tip displayMode = 0; function $(q) { return document.querySelector(q); } function $a(q) { return document.querySelectorAll(q); } function $c(t) { return document.createElement(t); } function $t(t) { return document.createTextNode(t); } String.prototype.u$format = function () { var args = arguments; return this.replace(/{(\d+)}/g, function (match, i) { return args[i] !== undefined ? args[i] : match; }); }; function isSubjectPage(str) { return /\/subject\/\d+$/.test(str); } function parseChineseName(text) { var re = /<li><span class="tip">中文名: <\/span>(.+?)<\/li>/; var result = re.exec(text); return result ? result[1] : ''; } function setChineseName(id, ch) { localStorage[localPrefix + id] = ch; var event = new CustomEvent('_uChinese', { detail: {subject_id: id, chinese: ch} }); window.dispatchEvent(event); } if (isSubjectPage(location)) { var id = location.href.split('/').pop(); setChineseName(id, parseChineseName(document.body.innerHTML)); return; } var titles; function displayChineseName($anchors, callback) { if (!titles) titles = {}; function triggerDisplayCallback($anchor, ch) { setTimeout(function () { $anchor.u$displayCh(ch); }); } function displayAll(id, ch) { var $anchors = titles[id]; delete titles[id]; setChineseName(id, ch); for (var i = 0; i < $anchors.length; i++) triggerDisplayCallback($anchors[i], ch); } function queryChineseName(id, url) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState == 4 && xhr.status == 200) displayAll(id, parseChineseName(xhr.responseText)); }; xhr.open('GET', url, true); xhr.send(null); } for (var i = 0; i < $anchors.length; i++) { var $anchor = $anchors[i]; if (!isSubjectPage($anchor.href)) continue; var id = $anchor.href.split('/').pop(); var ch = localStorage[localPrefix + id]; $anchor.u$displayCh = callback; if (ch !== undefined) { triggerDisplayCallback($anchor, ch); } else { if (!titles[id]) { titles[id] = []; queryChineseName(id, $anchor.href); } titles[id].push($anchor); } } } function updateIndex() { var $anchors = $a('#browserItemList>li>div>h3>a'); displayChineseName($anchors, function (ch) { if (!ch) return; if (displayMode) { this.innerHTML = ch; this.title = this.textContent; } else { let subhead = document.createElement('small'); subhead.className='grey'; subhead.innerHTML = this.textContent; this.parentNode.appendChild(subhead); this.innerHTML = ch; } }); } updateIndex(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址