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.

当前为 2019-08-09 提交的版本,查看 最新版本

// ==UserScript==
// @name        MetaFilter highlight selected comment
// @version     4
// @grant       none
// @match       http://*.metafilter.com/*
// @match       https://*.metafilter.com/*
// @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 = '.3em solid #9cc754';
    divToHighlight.style.outlineOffset = '.3em';
    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。