Scripte für Webseiten schon
Jetzt verstehen, deshalb auch Dein Script in Violentmonkey.
Scripte für Webseiten schon
Jetzt verstehen, deshalb auch Dein Script in Violentmonkey.
Was gibt es dann noch für Skripte, die man hiermit nutzen könnte (sicherlich sehr viele)?
Ja, unzählige. Am besten du schaust dich mal auf Greasy Fork um, die Site ist deutschsprachig. Die Skripte sind hier:
Außerdem gibt es noch Openuserjs.org.
Sicherlich irgendwo noch mehr.
die man hiermit nutzen könnte
Hier im Forum:
Bei einem längeren Code einfach einen Doppelklick in das Feld machen, zum Öffnen bzw. wieder schließen.
// ==UserScript==
// @name doubleclick toggle code & quote
// @author aborix
// @include https://www.camp-firefox.de/forum/thema/*
// @include https://www.firefox-forum.com/forum/thread/*
// @include https://www.firefox-forum.com/artikel/*
// @include https://www.camp-firefox.de/konversation/*
// ==/UserScript==
function doPage() {
function addListener(aBox) {
let toggleButton = aBox.lastElementChild;
aBox.addEventListener('dblclick', function(event) {
event.stopPropagation();
toggleButton.click();
getSelection().removeAllRanges();
});
};
function addDescListeners(aElement) {
let boxes = aElement.querySelectorAll('.codeBox.collapsed, .quoteBox.collapsed');
for (let box of boxes) {
addListener(box);
};
};
addDescListeners(document);
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') || classList.contains('quoteBox'))) {
setTimeout(function() {
addListener(node);
addDescListeners(node);
}, 100);
} else if (node.id && node.id.startsWith('post') && node.localName == 'li') {
setTimeout(function() {
addDescListeners(node);
}, 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
Bei einem neuen Thema wird die Fx Version und das Betriebssytem eingetragen.
Letzteres musst du wenn nötig per Hand anpassen.
// ==UserScript==
// @name Camp Firefox Fx Version + Betriebssystem
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author Sören
// @match https://www.camp-firefox.de/forum/neues-thema/*/
// @grant none
// ==/UserScript==
const customOptions = document.querySelectorAll('[id^="customOption"]');
const ua = navigator.userAgent.match(/Firefox\/([0-9]+\.[0-9.])/);
if (customOptions.length > 1) {
customOptions[0].value = 'Firefox ' + ua[1];
customOptions[1].value = 'Windows 10 2004 64 Bit';
}
Alles anzeigen
Gerne doch
Ja, unzählige. Am besten du schaust dich mal auf Greasy Fork um, die Site ist deutsprachig.
Danke, milupo, alles was das Herz begehrt.
Die Signatur ein- und ausklappen..
// ==UserScript==
// @name Signature Collapse
// @namespace http://openuserjs.org/users/ardiman
// @description Erlaubt schnelles Ausblenden/Anzeigen von Signaturen in vBulletin- und anderen Forensystemen.
// @grant none
// @homepage https://github.com/ardiman/userscripts/tree/master/vbulletinsignaturecollapse
// @icon https://raw.githubusercontent.com/ardiman/userscripts/master/scriptlogo.gif
// @include */showthread.php*
// @include */showpost.php*
// @include */viewtopic.php*
// @include */index.php?showtopic=*
// @include */index.php?topic=*
// @include */index.php/topic=*
// @include */thread/*
// @include */?thread/*
// @include https://www.camp-firefox.de/forum/thema/*
// @include https://www.camp-firefox.de/konversation/*
// @license CC-BY-NC-SA-3.0; https://creativecommons.org/licenses/by-nc-sa/3.0/legalcode
// @license MIT; https://opensource.org/licenses/MIT
// @supportURL https://github.com/ardiman/userscripts/issues
// @version 1.2.3
// @date 2019-06-03
// ==/UserScript==
(function() {
var nodes = document.evaluate(
"//td/div/following::comment()[.=' sig ']|//div[@class='signaturecontainer']|//div[@class='dis-signature']|//div[contains(@class, 'signature')]|//div[@class='messageSignature']",
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null);
var thissign;
for(var i=0; i<nodes.snapshotLength; i++) {
// vBulletin 3.x
if (nodes.snapshotItem(i).data==' sig ') {
thissign = nodes.snapshotItem(i).nextSibling.nextSibling;
thissign.style.display = 'none';
var anchor = document.createElement("a");
anchor.appendChild(document.createTextNode("\u005B+]"));
anchor.style.cursor = 'pointer';
anchor.title = 'Click to expand signature';
anchor.addEventListener('click', genHandler(thissign), false);
thissign.parentNode.insertBefore(anchor, thissign.previousSibling);
// vBulletin 4.x (signaturecontainer) or phpBB v3, xenForo (signature) or discuss on modx.com (dis-signature)
} else {
if (nodes.snapshotItem(i).className=="signaturecontainer" || nodes.snapshotItem(i).classList.contains("signature") || nodes.snapshotItem(i).className=="dis-signature" || nodes.snapshotItem(i).className=="messageSignature") {
thissign = nodes.snapshotItem(i);
thissign.style.display = 'none';
var anchor = document.createElement("a");
anchor.appendChild(document.createTextNode("\u005B+]"));
anchor.style.cursor = 'pointer';
anchor.title = 'Click to expand signature';
anchor.addEventListener('click', genHandler(thissign), false);
thissign.parentNode.insertBefore(anchor, thissign);
}
}
}
})();
function genHandler(signode) {
return (function(event) {
if(signode.style.display == 'none') {
signode.style.display='block';
// signode.removeAttribute("style");
this.firstChild.nodeValue=("[-]");
this.title = 'Click to collapse signature';
}
else {
signode.style.display = 'none';
this.firstChild.nodeValue=("\u005B+]");
this.title = 'Click to expand signature';
}
});
}
Alles anzeigen
Die Signatur ein- und ausklappen..
Auch das funktioniert, ich danke Dir.
Bei einem neuen Thema wird die Fx Version und das Betriebssytem eingetragen.
Letzteres musst du wenn nötig per Hand anpassen.
JavaScript Alles anzeigen// ==UserScript== // @name Camp Firefox Fx Version + Betriebssystem // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author Sören // @match https://www.camp-firefox.de/forum/neues-thema/*/ // @grant none // ==/UserScript== const customOptions = document.querySelectorAll('[id^="customOption"]'); const ua = navigator.userAgent.match(/Firefox\/([0-9]+\.[0-9.])/); if (customOptions.length > 1) { customOptions[0].value = 'Firefox ' + ua[1]; customOptions[1].value = 'Windows 10 2004 64 Bit'; }
wenn ich ein nneues Thema auf mache wird nichts eingetragen die Umrandung der Linie werden rot und das wars ?
das Script habe ihc als *.uc.js Datei erstellt.
jetzt sage nicht man muß dafür "tampermonkey" verwenden ?
das habe ich garnicht
jetzt sage nicht man muß dafür "tampermonkey" verwenden ?
So ist es
mhh dann ebend nicht.
Danke.
also bei mir ist es gnau umgekehrt *kopfkratz*
* {transition: none !important}
ZitatDamit schon:
Wurde eine oder zwei Seiten vorher schon überholt.
Das Zitat galt weniger dir, weil SonGoku wohl auch nicht alles zuletzt gelesen hat. Diese Verschachtelungen mit div und nth sind abartig unübersichtlich auf Seiten wie diesen und überflüssig. Nahezu jegliche Forensoftware bietet ID, Class und andere Tags für jeden Kleinkram, auch wenn es selbst nicht genutzt wird. Rein theoretisch könnte Sören darüber auch eigene Anpassungen einpflegen so wie wir das teils machen, nur muss so ein administrativer Aufwand ja auch nach einem Update noch funktionieren.
Diese Verschachtelungen mit div und nth sind abartig unübersichtlich
Es gibt aber Fälle, wo die Pseudoklassen :nth-child, :first-child, :last-child und noch :only-child die einzige Möglichkeit sind, einzelne Einträge unterschiedlich zu gestalten, weil es keine ID gibt.
Im vergangenen Jahr irgendwann kam eine Anfrage - ich glaube zu Amazon, und wenn ich mich recht erinnere von Son Goku - wo es für alle Listeneinträge einer Liste nur eine einzige Klasse gab. Er wollte aber jeden Listeneintrag in einer anderen Farbe haben. Dann kann man auf diese :nth-child-Pseudoklassen zurückgreifen. Es gab da irgendwie noch ein Attribut bei jedem Listeneintrag, wo man mit Attributselektoren für eine Teilauswahl arbeiten konnte, da sich die (ziemlich langen) Attributwerte geringfügig unterschieden.