molilys Script, kleiner Erweiterungsvorschlag f. Ausblendbuttons
frankx
- javascript
Hellihello,
da ich eine ganze Menge Threads ausblende, möchte ich gerne die Ausblendbuttons übereinander haben, sonst muss man mit der maus immer hin und her. So molilys script mit eingebunden (Einbindung nach onload klappte nicht via script-Element).
:
document.write('<script src="', 'http://forum.de.selfhtml.org/js/forum.js', '" type="text/JavaScript"><\/script>');
window.onload = function ()
{
//~ my_head_ref = document.getElementsByTagName("head")[0];
//~ my_js_script = document.createElement("script");
//~ my_head_ref.appendChild(my_js_script);
//~ my_js_script.setAttribute("type","text/javascript");
//~ my_js_script.setAttribute("src", "http://forum.de.selfhtml.org/js/forum.js");
allImages = document.getElementsByTagName("img");
for (i = 0; i<allImages.length; i++) {
if (allImages[i].src == "http://src.selfhtml.org/del.gif") {
allImages[i].style.border = "1px solid red";
allImages[i].style.position = "absolute";
allImages[i].style.right = "1em";
//~ allImages[i].style.display = "block";
}
}
}
Dank und Gruß,
da ich eine ganze Menge Threads ausblende, möchte ich gerne die Ausblendbuttons übereinander haben, sonst muss man mit der maus immer hin und her.
Dafür hat der Link die Klasse function-link-hide. CSS müsste für das Vorhaben ausreichen, oder?
Mathias
Hellihello
Dafür hat der Link die Klasse function-link-hide. CSS müsste für das Vorhaben ausreichen, oder?
Au ja. Warum klappt das Einbinden Deines Scriptes nicht über das Einhängen eines script-Elementes im Head nach dem window.onload() ?
Dank und Gruß,
Hellihello,
entschuldigt bitte, wenn ich mich hier auch mal einklinke, auch wenn ich nichts zum Thema des OP beizutragen habe.
Ich benutze das Script jetzt auch schon einige Tage, und möchte gerne ein kurzes Feedback abgeben.
Ungelesene Antworten auf eigene Beiträge anzeigen
Meine Lieblingsfunktion des Scripts! ;-)
Hier scheint es aber ein Problem mit dem Cache zu geben. Wenn es eine neue Antwort gab, man diese gelesen hat und dann mittels des Links ganz oben auf der Beitragsseite wieder auf die Forums-Hauptseite zurückkehrt, dann wird die Antwort immer noch angezeigt. Erst ein erneuter Reload lässt die Anzeige verschwinden.
Kontextmenüs
Bei den Kontextmenüs fände ich es komfortabler, wenn sich diese durch einen Klick außerhalb automatisch schließen würden.
Einen Erweiterungsvorschlag hätte ich auch noch:
Ich fände es sehr praktisch, wenn man per Listenauswahlfeld/ Kontextmenü kurzfristig die Sortierung der Beiträge sowohl im Forum, als auch in der Beitragsansicht ändern könnte.
Ansonsten muss ich sagen, dass ich mir das Forum ohne dieses Script schon gar nicht mehr vorstellen kann! Das ist eine sehr gute Geschichte, die sich bis jetzt bei mir auch völlig problemlos und nahtlos in die Foren-Soft einfügt! Ganz großes Kompliment!
Gruß Gunther
- Ungelesene Antworten auf eigene Beiträge anzeigen
Hier scheint es aber ein Problem mit dem Cache zu geben.
Nun, das ist kein Problem, sondern eigentlich ein Feature des Forums.
Der Forumsclient muss die Hauptseite ständig neu generieren. Das kostet Rechenzeit, was das Forum (früher) sehr lahm gemacht hat, wenn viele auf die Forumshauptseite zugegriffen haben. Deshalb generiert er sie am liebsten nur einmal pro Minute (oder seltener, ich weiß nicht, wie er genau eingestellt ist) und sendet ansonsten Caching-Header, die dem Browser sagen, dass die gegenwärtige Version noch aktuell ist.
Seitens des JavaScripts kann man da nichts machen -höchstens einen Reload erzwingen, aber als Forumsteilnehmer sollte man nicht wichtige Performance-Überlegungen der Forumsbetreiber untergraben. ;)
Was ich seitens des JavaScripts allerdings tun könnte, ist die Linkfarbe überprüfen. Denn diese weist ja darauf hin, dass das Posting schon gelesen wurde, auch wenn im zugrunde liegenden Quellcode der Forumshauptseite noch keine Gelesen-Markierung steht.
- Kontextmenüs
Bei den Kontextmenüs fände ich es komfortabler, wenn sich diese durch einen Klick außerhalb automatisch schließen würden.
Kann ich einrichten.
Ich fände es sehr praktisch, wenn man per Listenauswahlfeld/ Kontextmenü kurzfristig die Sortierung der Beiträge sowohl im Forum, als auch in der Beitragsansicht ändern könnte.
Mal sehen, was sich da machen lässt.
Ansonsten muss ich sagen, dass ich mir das Forum ohne dieses Script schon gar nicht mehr vorstellen kann! Das ist eine sehr gute Geschichte, die sich bis jetzt bei mir auch völlig problemlos und nahtlos in die Foren-Soft einfügt! Ganz großes Kompliment!
Dankesehr. Und auch danke für die Vorschläge.
Mathias
Was ich seitens des JavaScripts allerdings tun könnte, ist die Linkfarbe überprüfen. Denn diese weist ja darauf hin, dass das Posting schon gelesen wurde, auch wenn im zugrunde liegenden Quellcode der Forumshauptseite noch keine Gelesen-Markierung steht.
Done
Solche Postings werden jetzt nicht mehr als ungelesen angezeigt.
Bei den Kontextmenüs fände ich es komfortabler, wenn sich diese durch einen Klick außerhalb automatisch schließen würden.
Done
Ich fände es sehr praktisch, wenn man per Listenauswahlfeld/ Kontextmenü kurzfristig die Sortierung der Beiträge sowohl im Forum, als auch in der Beitragsansicht ändern könnte.
Done
Noch nicht ganz schön. Ich kann im JS m.W. nicht abfragen, welche Sortierung gerade aktuell ist.
Mathias
Hallo Mathias!
Na das ging ja fix! :-)
Done
Noch nicht ganz schön. Ich kann im JS m.W. nicht abfragen, welche Sortierung gerade aktuell ist.
Das wollte ich gerade anmerken, dass es schön wäre, wenn die aktuelle Einstellung vorselektiert wäre. Allerdings leuchtet das Problem dabei ein. Was man imho noch ändern könnte, wäre das Weglassen der Abfrage, denn eine gemachte Auswahl impliziert doch gerade diesen Wunsch.
Ist aber auch so schon eine weitere Steigerung des Benutzerkomforts!
Gruß Gunther
Hallo Mathias!
Irgendwann schaffe ich es auch noch mal, gleich Alles in einem Posting zu schreiben ...!
Done
Noch nicht ganz schön. Ich kann im JS m.W. nicht abfragen, welche Sortierung gerade aktuell ist.
Das wollte ich gerade anmerken, dass es schön wäre, wenn die aktuelle Einstellung vorselektiert wäre. Allerdings leuchtet das Problem dabei ein.
Ließe sich dieses Problem ggf. nicht mittels eines Cookies umgehen? Zumindest für die User, die Cookies akzeptieren.
Gruß Gunther
Ließe sich dieses Problem ggf. nicht mittels eines Cookies umgehen?
Ja, wenn man einmal per JavaScript eine Auswahl getroffen hat, ist es natürlich möglich, wieder im JavaScript vorzuselektieren.
Allerdings ist das schwierig, weil es wie gesagt völlig losgekoppelt von der serverseitigen, tatsächlichen Einstellung ist.
Ich werde mir mal überlegen, ob ich nicht irgendwie über die Templates an die Einstellung komme.
Mathias
Hallo
Ließe sich dieses Problem ggf. nicht mittels eines Cookies umgehen?
Ja, wenn man einmal per JavaScript eine Auswahl getroffen hat, ist es natürlich möglich, wieder im JavaScript vorzuselektieren.
Allerdings ist das schwierig, weil es wie gesagt völlig losgekoppelt von der serverseitigen, tatsächlichen Einstellung ist.
Ich werde mir mal überlegen, ob ich nicht irgendwie über die Templates an die Einstellung komme.
Die Idee ist nicht grade eine Ausgeburt an Eleganz, aber wäre es nicht möglich, einen HTML-Kommentar mit der gewünschten Information zu setzen, der via JavaScript ausgelesen wird?
Tschö, Auge
Warum klappt das Einbinden Deines Scriptes nicht über das Einhängen eines script-Elementes im Head nach dem window.onload() ?
Das klappt durchaus. Allerdings werden die Initialisierungsfunktionen nicht ausgeführt, weil diese als DOMContentLoaded-Handler registriert sind. Und DOMContentLoaded feuert vor load.
Mathias
Hellihello
Das klappt durchaus. Allerdings werden die Initialisierungsfunktionen nicht ausgeführt, weil diese als DOMContentLoaded-Handler registriert sind. Und DOMContentLoaded feuert vor load.
Und kann ich dein DOMContentLoaded-replay abfeuern oder wie könnte ich das hässliche document.write umgehen?
Dank und Gruß,
Und kann ich dein DOMContentLoaded-replay abfeuern
Ja, du kannst SELFHTML.Forum.initModules aufrufen, das führt alle vorher registrierten Initialisierungsfunktionen aus. Per DOMContentLoaded wird direkt nur diese Funktion ausgeführt, die startet dann alle weiteren. (Ist absichtlich so »zentralisiert«, u.a. )
oder wie könnte ich das hässliche document.write umgehen?
Was ist an document.write hässlich? Im Übrigen musst du nicht auf onload warten, um script-Elemente per DOM einzubinden. Dein Script funktioniert auch während dem Laden des Dokuments, denn es hat, sofern es im head eingebunden wird, bereits Zugriff auf das head-Element.
Mathias
Ist absichtlich so »zentralisiert«, u.a.
... damit man Module für die Forumshauptseite respektive die Postingansicht registrieren kann und die dafür nötige Abfrage der body-ID nur an einer, nämlich dieser Stelle, erfolgen muss.
Und kann ich dein DOMContentLoaded-replay abfeuern
Ja, du kannst SELFHTML.Forum.initModules aufrufen
Die Funktion heißt jetzt
SELFHTML.Forum.Modules.init
Das Namensraum-Schema versuche ich jetzt mal durchzuhalten.