Hallo allerseits.
Bekanntlich lassen sich Forumsbeiträge bestimmter Mitglieder ausblenden, indem man diese als ignorierte Mitglieder festlegt.
Einen ausgeblendeten Beitrag kann man sich durch einen Klick anzeigen lassen.
Befinden sich auf einer Seite mehrere ausgeblendete Beiträge, so kann man sich allerdings nur einen Beitrag gleichzeitig anzeigen lassen. Beim Klick auf einen anderen wird dieser angezeigt, der vorher sichtbare jedoch wieder ausgeblendet.
Dieser Mangel hat mich gestört und ich habe ein GM-Skript verfasst, mit dem sich Beiträge unabhängig voneinander anzeigen und wieder ausblenden lassen.
Genau ist es so:
Überschrift, Signatur und die rechte Spalte mit Mitgliedsdaten und Avatar bleiben sichtbar und der eigentliche Inhalt in der linken Spalte wird ausgeblendet.
Das Skript benützt die Ignorier-Funktion nicht und die betreffenden Mitglieder dürfen nicht als ignoriert festgelegt sein.
Die Namen werden eingetragen in Zeile 7, eingeschlossen in Apostrophe oder Anführungszeichen und getrennt durch Beistriche. Leerzeichen sind optional.
Das Ein- und Ausblenden erfolgt durch Klick auf die Pfeil-Grafik am oberen Rand des Beitrags, links neben dem Melde-Button.
Das Skript funktioniert auch bei Beiträgen von Moderatoren, Administratoren, ehemaligen Mitgliedern und einem selbst.
Es funktioniert außerdem auch ohne dass man angemeldet ist, ist also auch für Nicht-Mitglieder verwendbar.
Die Pfeil-Grafiken können auch durch andere ersetzt werden. Diese werden dann in den Zeilen 9 - 12 eingetragen. Die Größe der Grafiken muss außerdem in Zeile 51 eingetragen werden.
// ==UserScript==
// @name Camp Firefox - Beiträge ausblenden
// @include http://www.camp-firefox.de/forum/viewtopic.php?*
// @grant none
// ==/UserScript==
const namesHidden = ['Name1', 'Name2', 'Name3'];
const arrowUp = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAU0lEQVR42mNgGPKgvr7+PzKmqmEUGYrLMLIMJWQYSYYSaxhRhhKjgWhDSbGdKLW4JPFpJMpAUpMN0RE0eJMNXdIhOSmB9umQ4lKInMCmWrFGVwAASONg2DckN2UAAAAASUVORK5CYII=';
const arrowUpHover = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAU0lEQVR42mNgGPLAuerwf2RMVcMoMhSXYWQZSsgwkgwl1jCiDCVGA9GGkmI7UWpxSeLTSJSBpCYboiNo8CYbuqRDclIC7dMhxaUQOYFNtWKNrgAAK2Bigq2d/lsAAAAASUVORK5CYII=';
const arrowDown = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAWElEQVR42mNgGDKgvr7+PwxTRQ+yJDGGEqUeXRE2hcSoIVoDyYbh00i2YTQxkBhDiTaAGEMJ6cObpogxjKh0iM9bRKulWzqkOKYHZ7IhxVCqFWsUGzYoAADjHmDYbK4y6wAAAABJRU5ErkJggg==';
const arrowDownHover = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAWElEQVR42mNgGDLAuerwfximih5kSWIMJUo9uiJsColRQ7QGkg3Dp5Fsw2hiIDGGEm0AMYYS0oc3TRFjGFHpEJ+3iFZLt3RIcUwPzmRDiqFUK9YoNmxQAAD8qWKCavRPywAAAABJRU5ErkJggg==';
var style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = '\
.show-icon {background-image: url(' + arrowUp + ')} \
.show-icon:hover {background-image: url(' + arrowUpHover + ')} \
.hide-icon {background-image: url(' + arrowDown + ')} \
.hide-icon:hover {background-image: url(' + arrowDownHover + ')}';
document.head.appendChild(style);
var posts = document.getElementsByClassName('post');
for (var i = 0; i < posts.length; i++) {
(function() {
var post = posts[i];
var p = post.getElementsByClassName('author')[0];
if (!p)
return;
var strongCh = p.getElementsByTagName('strong')[1].firstChild;
var name;
if (strongCh.nodeName == '#text')
name = strongCh.textContent
else
name = strongCh.firstChild.textContent;
if (namesHidden.indexOf(name) == -1)
return;
var content = post.getElementsByClassName('content')[0];
var attachbox = post.getElementsByClassName('attachbox')[0];
var pbSecCh = post.getElementsByClassName('postbody')[0].firstChild.nextSibling;
var ul;
if (pbSecCh.tagName == 'UL')
ul = pbSecCh
else {
ul = document.createElement('ul');
ul.className = 'profile-icons';
pbSecCh.parentElement.insertBefore(ul, pbSecCh);
};
var button = document.createElement('li');
ul.insertBefore(button, ul.firstChild);
button.setAttribute('style', 'width: 20px; height: 20px; margin: 0 20px;');
button.addEventListener('click', showHide);
button.click();
function showHide(event) {
if (event.button != 0)
return;
if (content.style.display == 'none') {
content.style.display = 'block';
if (attachbox)
attachbox.style.display = 'block';
button.setAttribute('class', 'show-icon');
button.setAttribute('title', 'Beitrag ausblenden');
} else {
content.style.display = 'none';
if (attachbox)
attachbox.style.display = 'none';
button.setAttribute('class', 'hide-icon');
button.setAttribute('title', 'Beitrag anzeigen');
};
};
}());
};
Alles anzeigen