MetaFilter highlight selected comment

On MetaFilter.com, adds a border to the selected comment to make it stand out visually, and adds "selected comment" to the small text to make it easy to search if you lose your place.

À partir de 2019-08-21. Voir la dernière version.

// ==UserScript==
// @name        MetaFilter highlight selected comment
// @version     11
// @grant       none
// @match       *://*.metafilter.com/*
// @run-at      document-idle
// @description On MetaFilter.com, adds a border to the selected comment to make it stand out visually, and adds "selected comment" to the small text to make it easy to search if you lose your place.
// @locale      en-us
// @namespace   https://greasyforks.org/users/324881
// ==/UserScript==

function highlightSelectedComment() {
  // first, clear all borders and selected comment text when this function is called.
  let allCommentDivs = document.getElementsByClassName('comments');
  for (commentDiv of allCommentDivs) {
    commentDiv.style.outline = '';
    commentDiv.style.outlineOffset = '';
  }
  let allSelectedCommentsSpans = document.getElementsByClassName('tehhundUserScriptSelectedComment');
  for (selectedCommentSpan of allSelectedCommentsSpans) {
    selectedCommentSpan.remove();
  }
  
  // then if there's a hash/fragment ID, highlight it.
  if(window.location.hash) {
    let fragment = window.location.hash.substring(1);
    let anchor = document.getElementsByName(fragment)[0];
    let divToHighlight = anchor.nextSibling;
    divToHighlight.style.outline = '.2em solid #9cc754';
    divToHighlight.style.outlineOffset = '.2em';
    divToHighlight.lastChild.innerHTML += '<span class=\'tehhundUserScriptSelectedComment\'>Selected comment. </span>';
  }
}

// Attach event listeners
highlightSelectedComment(); // In case this script runs after the window load event, highlight as soon as Greasemonkey runs the script.
window.addEventListener('load',highlightSelectedComment); // In case this script runs before the window load event, highlight when that event fires.
window.addEventListener('hashchange',highlightSelectedComment); // Run every time the hash changes.
长期地址
遇到问题?请前往 GitHub 提 Issues。