Forums-JS, wann sind damit erstellte Elemente vorhanden?
Auge
- javascript
- zu diesem forum
Hallo
Ich nutze in diesem Forum die Funktion, die Übersichtsseiten alle 20 Minuten neu zu laden. Was mir bis gestern fehlte, war die Anzeige, wann der nächste Reload ansteht. Das habe ich nun per User-JS mit einem eigenen Skript ergänzt.
Das funktioniert soweit. Was mir nun ein wenig aufstößt, ist die feste Vorgabe des Rhythmus'. Ich habe in meinem Skript den 20-Minuten-Rhythmus fest vorgegeben, wie er auch in meinen Einstellungen gewählt ist. Für den etwaigen Fall der Weiterverwendung durch andere ist natürlich das Auslesen des HTML-Elements, das den Reload steuert, flexibler.
<meta http-equiv="refresh" content="1200; URL=http://forum.selfhtml.org/self">
Das Element wird selbst durch das Forums-JS eingefügt. Meine Funktion habe ich an das Event DOMContentReady
gebunden. Nun zu meiner Frage (eines JS-Laien). Sind zu diesem Zeitpunkt grundsätzlich auch schon die per Skript eingefügten Elemente mitsamt ihren Attributen und Inhalten vorhanden oder gilt es da etwas zu beachten (auf Elementerstellung warten o.Ä.)?
Tschö, Auge
Hallo Auge,
<meta http-equiv="refresh" content="1200; URL=http://forum.selfhtml.org/self">
Das Element wird selbst durch das Forums-JS eingefügt.
Nein, das Element wird durch die Template-Engine erzeugt:
<% if controller_path == 'cf_threads' and uconf('autorefresh').to_i > 0 %>
<meta http-equiv="refresh" content="<%= uconf('autorefresh').to_i * 60 %>; URL=<%= cf_forum_url(current_forum) %>">
<% end %>
Meine Funktion habe ich an das Event
DOMContentReady
gebunden. Nun zu meiner Frage (eines JS-Laien). Sind zu diesem Zeitpunkt grundsätzlich auch schon die per Skript eingefügten Elemente mitsamt ihren Attributen und Inhalten vorhanden oder gilt es da etwas zu beachten (auf Elementerstellung warten o.Ä.)?
Das hängt davon ab[tm]. Grundsätzlich gilt: JS, das geladen wird, wird vor DOMContentReady
geladen solange kein defer
oder so verwendet wird. Aber natürlich kann das Script selber auch Event-Handler registrieren, ich verwende z.B. fast immer DOMContentReady
in den Forum-JS-Sourcen und verrichte dann darin die Arbeit. In dem Fall wären die durch JS erzeugten Elemente natürlich noch nicht vorhanden.
Aber für den vorliegenden Fall ist das auch nicht relevant :-)
LG,
CK
Hallo
<meta http-equiv="refresh" content="1200; URL=http://forum.selfhtml.org/self">
Das Element wird selbst durch das Forums-JS eingefügt.
Nein, das Element wird durch die Template-Engine erzeugt:
<% if controller_path == 'cf_threads' and uconf('autorefresh').to_i > 0 %> <meta http-equiv="refresh" content="<%= uconf('autorefresh').to_i * 60 %>; URL=<%= cf_forum_url(current_forum) %>"> <% end %>
Aha, das heißt, das Element wird serverseitig in den HTML-Quelltext eingefügt? Ich habe es nämlich nicht im Seitenquelltext, aber im DOM (Firefox: [STRG]+[a] → „Auswahl-Quelltext anzeigen“) gefunden. Daher ging ich von JavaScript aus.
Danke für die Auskunft.
Tschö, Auge
Hallo Auge,
Nein, das Element wird durch die Template-Engine erzeugt:
<% if controller_path == 'cf_threads' and uconf('autorefresh').to_i > 0 %> <meta http-equiv="refresh" content="<%= uconf('autorefresh').to_i * 60 %>; URL=<%= cf_forum_url(current_forum) %>"> <% end %>
Aha, das heißt, das Element wird serverseitig in den HTML-Quelltext eingefügt?
Ja, aber nur im Thread-Index (siehe controller_path == 'cf_threads'
).
LG,
CK