Greasy Fork is available in English.

PTT-顯示推文樓層

顯示 PTT 的推文樓層數

// ==UserScript==
// @name         PTT-顯示推文樓層
// @namespace    https://github.com/jlhg/userscript
// @license      MIT
// @version      0.2.1
// @description  顯示 PTT 的推文樓層數
// @author       jlhg
// @homepage     https://github.com/jlhg/userscript
// @supportURL   https://github.com/jlhg/userscript/issues
// @match        https://www.ptt.cc/bbs/*
// @grant        none
// ==/UserScript==

(function() {
  'use strict';

  function createPushLevel(level) {
    const el = document.createElement('div');
    el.className = 'push-level';
    el.style.cssText = 'display: inline-block;' +
      'min-width: 50px;' +
      'margin-left: -62px;' +
      'padding-right: 12px;' +
      'text-align: right;' +
      'color: #808080;';
    el.textContent = level;
    return el;
  }

  const pushElements = document.querySelectorAll('.push');

  let pushCount = 0;
  for (const pushElement of pushElements) {
    pushElement.prepend(createPushLevel(++pushCount));
  }

  const observer = new MutationObserver(mutations => {
    for (const mutation of mutations) {
      for (const node of mutation.addedNodes) {
        for (const child of node.childNodes) {
          if (child.className == 'push') {
            child.prepend(createPushLevel(++pushCount));
          }
        }
      }
    }
  });

  let mainContent = document.querySelector('#main-content');
  observer.observe(mainContent, { childList: true, subtree: true });
})();