Tjena @ClintBeastwood! Tanken med kryssrutorna är inte att markeringarna ska sparas permanent, utan att man ska kunna följa/avfölja/markera flera trådar som lästa på samma gång.
Tyvärr går det inte att med CSS selektera ut följda trådar; annars hade man mycket enkelt kunnat applicera den gula bakgrunden på alla sådana åtminstone. Däremot går det att göra det med JavaScript. Här är ett userscript som gör alla följda trådar gulmarkerade, som du kan använda om du vill:
Klicka för mer information
// ==UserScript==
// @name Highlight Followed Threads
// @author Simon Alling
// @include /^https?:\/\/(www\.)?sweclockers\.com\/forum\//
// @run-at document-end
// ==/UserScript==
const RUN_ON = /\/forum\/(\d+\-[^\/]*|aktiva|obesvarade|foljda|skapade|lasta)$/;
const SELECTOR_TR = "tr.forumThread";
const SELECTOR_ICON = ".threadStatus";
const CLASS_SELECTED = "isSelected";
const ICONS_FOLLOWED = [32, 96, 33, 97, 40, 104, 41, 105];
const ICON_CLASS = number => "icon-" + number;
const iconToRowMap = new Map();
if (RUN_ON.test(document.location.pathname)) {
main();
}
function main() {
const observer = new MutationObserver(mutationHandler);
const trs = document.querySelectorAll(SELECTOR_TR);
for (const tr of trs) {
const icon = tr.querySelector(SELECTOR_ICON);
iconToRowMap.set(icon, tr);
observer.observe(icon, { attributes: true });
}
}
function mutationHandler(mutations, observer) {
for (const mutation of mutations) {
if (mutation.type === "attributes") {
const icon = mutation.target;
if (ICONS_FOLLOWED.some(n => icon.classList.contains(ICON_CLASS(n)))) {
iconToRowMap.get(icon).classList.add(CLASS_SELECTED);
}
}
}
}
Visa mer
Om man vill skulle man alternativt kunna skriva ett script som ger kryssrutorna den funktionalitet du efterfrågar. De sparas idag i sessionStorage
under nyckeln "tanuki.storage"
. Om man som i exemplet markerar tråden om Epic Games blir värdet följande:
{"forum.threads":{"meta":{"lastWrite":1568293958097},"value":{"1569096":1569096}}}
lastWrite
lär användas för att avgöra när datan ska raderas. Det man kanske kan göra är att lägga en event listener på kryssrutorna som då kopierar datan från sessionStorage
till localStorage
; sedan kollar man i början av varje sidladdning om sessionStorage
-värdet har raderats och återställer det i så fall från localStorage
.
Som vanligt är det säkert inte fullt så enkelt i verkligheten, och det vore en ganska hackig modifikation, men det borde vara fullt möjligt iallafall.