您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add an indicator to all messages by the thread's original poster
// ==UserScript== // @name original-poster // @description Add an indicator to all messages by the thread's original poster // @namespace https://cfillion.ca // @version 1.2 // @author cfillion // @license GPL-3.0-or-later // @include https://forum.cockos.com/showthread.php* // ==/UserScript== function getPosters(doc) { return doc.querySelectorAll('.bigusername'); } let label = document.createElement('span'); label.appendChild(document.createTextNode('OP')); label.title = 'Original poster'; label.style = ` background-color: #12768c; border-radius: 3px; color: white; cursor: default; font-size: 12px; font-weight: bold; margin-left: 5px; padding-left: 4px; padding-right: 4px; `; (async() => { const posters = getPosters(document); let op = posters[0]; const threadId = document.querySelector('form input[name=searchthreadid]'); const params = new URLSearchParams(window.location.search); if(threadId && (params.get('page') > 1 || params.has('p'))) { let response = await fetch(new URL(`showthread.php?t=${threadId.value}`, window.location.href)); const html = await response.text(); let parser = new DOMParser(); let firstPage = parser.parseFromString(html, "text/html"); op = getPosters(firstPage)[0]; } for(const poster of posters) { if(poster.href == op.href) poster.parentNode.insertBefore(label.cloneNode(true), poster.nextSibling); } })();