您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
On MetaFilter.com, adds a comment number like "comment 1 of 30" to each comment.
当前为
// ==UserScript== // @name MetaFilter number all comments // @version 11 // @grant none // @match http://*.metafilter.com/* // @match https://*.metafilter.com/* // @description On MetaFilter.com, adds a comment number like "comment 1 of 30" to each comment. // @locale en-us // @run-at document-idle // @namespace https://gf.qytechs.cn/users/324881 // ==/UserScript== function addCountToComments() { // first, clear all counts in case this runs more than once on a page. let allCommentCountSpans = Array.from(document.getElementsByClassName('tehhundUserScriptCommentCount')); for (let currentSpan of allCommentCountSpans) { currentSpan.remove(); } // then add counts to every comment div. let allCommentDivs = document.getElementsByClassName('comments'); allCommentDivs = Array.from(allCommentDivs).filter( function(div) { return div.previousSibling.tagName == 'A'; }); // Some "comment" divs are not actually comments. All comments, and only comments, are preceeded by an anchor tag. So this filters down to only real comment divs. for (let [i,divToHighlight] of allCommentDivs.entries()) { setTimeout(function() {divToHighlight.lastChild.innerHTML += '<span class=\'tehhundUserScriptCommentCount\'>Comment ' + (i+1) + ' of ' + allCommentDivs.length + '. </span>';},0) } } function runIfCommentAdded(mutationsList, observer) { // When a mutation event occurs, check if it was adding a comment and if so renumber the comments. for (let mutation of mutationsList) { // Loop over all mutations for this event. try { if (mutation.target.previousSibling.tagName == 'A') { // If the target's previousSibling is an anchor tag, it's probably an added comment so renumber the comments. Otherwise do nothing. addCountToComments(); } } catch(e) { /* previousSibling is null if the mutation was adding a Favorite, and that throws an error on the console every time. This try/catch discards the error. */ } } } addCountToComments(); // Run once when the page is idle // Removing mutation ovbserver for now as it causes a race condition with the async setTimeout on page load. // After the initial run, observe the main content div for changes such as new comments and run addCountToComments() again. // const mutationObserver = new MutationObserver(runIfCommentAdded); // mutationObserver.observe(document.getElementById('posts'), { attributes: true, childList: true, subtree: true })
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址