Das Skript aus #50 funktioniert zwar bei bearbeiteten, aber nicht bei neuen Beiträgen.
Nehmt das folgende Skript, es funktioniert auch bei neuen Beiträgen.
Code
// ==UserScript==
// @name doubleclick toggle code
// @include https://www.camp-firefox.de/forum/thema/*
// ==/UserScript==
function doPage() {
function addListener(aCodeBox) {
let toggleButton = aCodeBox.querySelector('.toggleButton.jsToggleButtonEnabled');
aCodeBox.addEventListener('dblclick', function() {
toggleButton.click();
getSelection().removeAllRanges();
});
};
let codeBoxes = document.querySelectorAll('.codeBox.collapsed');
for (let codeBox of codeBoxes) {
addListener(codeBox);
};
let observer = new MutationObserver(function(mutations) {
for (let mutation of mutations) {
for (let node of mutation.addedNodes) {
let classList = node.classList;
if (classList && classList.contains('collapsed') && classList.contains('codeBox')) {
// bearbeiteter Beitrag
setTimeout(function() {
addListener(node);
}, 100);
} else if (node.id && node.id.startsWith('post') && node.localName == 'li') {
// neuer Beitrag
setTimeout(function() {
let codeBox = node.querySelector('.codeBox.collapsed');
if (codeBox) {
addListener(codeBox);
};
}, 100);
}
}
}
});
let postList = document.querySelector('#content .wbbThreadPostList.messageList');
observer.observe(postList, {childList: true, subtree: true});
};
addEventListener('pageshow', function() {
setTimeout(doPage, 0);
}, {once: true});
Alles anzeigen