MetaFilter number all comments

On MetaFilter.com, adds a "comment 1 of 30" to each comment.

От 12.08.2019. Виж последната версия.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да инсталирате разширение, като например Tampermonkey .

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name        MetaFilter number all comments
// @version     1
// @grant       none
// @match       http://*.metafilter.com/*
// @match       https://*.metafilter.com/*
// @description On MetaFilter.com, adds a "comment 1 of 30" to each comment.
// @locale      en-us
// @namespace   https://greasyfork.org/users/324881
// ==/UserScript==

function addCountToComments() {
  // first, clear all counts in case this runs more than once on a page.
  let allCommentCountSpans = document.getElementsByClassName('tehhundUserScriptCommentCount');
  for (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';
  });
  console.log(typeof allCommentDivs);
  let index = 0;
  for (let divToHighlight of allCommentDivs) {
    index += 1;
    divToHighlight.lastChild.innerHTML += '<span class=\'tehhundUserScriptCommentCount\'>Comment ' + index + ' of ' + allCommentDivs.length + '</span>';
  }
}

// Attach event listeners

addCountToComments(); // In case this script runs after the window load event, highlight as soon as Greasemonkey runs the script.
window.addEventListener('load',addCountToComments); // In case this script runs before the window load event, highlight when that event fires.