Zeit aktualisieren ?!?

Hallo ihr Wissenden,

ich brauche Hiiilllffeeee…

Ich bin seit mehreren Tagen auf der Suche nach der Möglichkeit einer permanenten Zeitaktualisierung (Clientenseitig) in einer Laufschrift im Statusbereich des Browsers beim Besuch einer HP, ohne diese vollständig aktualisieren zu müßen. Bisher funktioniert dieses nur bei Seitenaufruf.

Die Laufschrift wird durch eine seperate .js-Datei (enthält den eigentlichen JS-Code) bestimmt, die in der html verlinkt wurde.

Ich bin mit meinen sehr begrenzten JS-Kenntnissen zu der Erkenntnis gekommen, daß ich irgendwo den Befehl „setTimeout(„showtime()“,1000);“ im Bereich function scrollMe() einbauen muß/soll. aber alle meine Versuche sind bei Tests kläglich gescheitert… ist das bereits falsch, oder wo liegt mein Fehler - Wer kann mir hierbei weiter helfen???

Danke im vorraus
Gruß Alex

URL: http://www.er-langbargheide.de

hier der Code:

var osd = " + + "
osd +=" Die nächste Elternratssitzung findet am 05.04.2007 statt ! ";
osd +=" + + ";

var timer;

var msg = "";

function scrollMaster () {
msg = customDateSpring(new Date())
clearTimeout(timer)
msg += " " + showtime() + " " + osd

for (var i= 0; i 9) ? "" : " ")
timeValue += ((dates \>9) ? "" : " ")
timeValue = ( months +1)
timeValue +="/"+ dates
timeValue +="/"+ years

var timeValue2 = " " + hours
timeValue2 += ((minutes 

Hallo,

ich bin ehrlich gesagt zu faul, mir das Skript jetzt anzusehen, soviel kann ich dir aber sagen: Mit setTimeout kannst du eine Art Countdown starten, nach dem die angegebene Funktion genau ein Mal ausgeführt wird. Wenn du etwas regelmäßig starten willst, musst du setInterval benutzen.

Normalerweise schreibt man das auch nicht in irgendwelche Funktionen rein (habe ich zumindest noch nie gemacht). Ich nehme an, dass eine der Funktionen on dem Skript für das Schreiben der Zeit zuständig ist. Diese Funktion musst du regelmäßig aufrufen. Das Intervall würde ich einfach irgendwo am Ende platzieren.

Noch ein Hinweis: Eine Uhr in der Statuszeile des Browser ist eine nette Spielerei, aber leider absolut und uneingeschränkt sinnlos. Der Nutzer hat eine in der Taskleiste und die meisten Nutzer haben zusätzlich noch eine am Handgelenk und noch zwei im Zimmer stehen. Keiner braucht eine weitere, die ihm noch dazu die (nützliche, weil im wörtlichen Sinn „wegweisende“) Statsuzeile zubaut.

mfg
MB

Moin Markus,

Noch ein Hinweis: Eine Uhr in der Statuszeile des Browser ist
eine nette Spielerei, aber leider absolut und uneingeschränkt
sinnlos. Der Nutzer hat eine in der Taskleiste und die meisten
Nutzer haben zusätzlich noch eine am Handgelenk und noch zwei
im Zimmer stehen. Keiner braucht eine weitere, die ihm noch
dazu die (nützliche, weil im wörtlichen Sinn „wegweisende“)
Statsuzeile zubaut.

Spielerrei (z.Zt.) zugegeben stimme ich erstmal zu.
Sinnlos denke ich eher nicht, weil wegen:

  • Taskleiste ist bei den meisten, die ich kenne, im Hintergrund - also nicht zu sehen.
  • Selbst ich habe nicht immer eine Uhr am Handgelenk - und fühle mich immer irgendwie „tempus nacktus“
  • Im Zimmer hätte ich nur noch eine weitere im Fernseher, denn ich aber erst einschalten müßte.
    das soll aber auch nicht das Thema sein bzw. werden.

Den setInterval-Befehl habe ich nirgends in diesem Zusammenhang gelesen und kenne Ihn auch nicht…

Wie lautet er dann ? "setInterval(„showtime()“,1000);"

Wie bereits geschrieben soll die Zeit sekündlich aktualisiert werden, ohne daß der darauffolgende Scroll-Text in Mitleidenschaft gezogen werden soll.

Ich möchte später - das ist aber noch Zukunftsmusik -, daß ich mehrere Termine in eine Datei eingebe (OSD) wo (evt. auch nur) der nächste in dem auf der Zeit folgenden Scroll-Text ausgegeben wird.

Gruß Alex

Hallo,

  • Taskleiste ist bei den meisten, die ich kenne, im
    Hintergrund - also nicht zu sehen.

in dem Fall haben die sich entschieden, dass sie keine Uhr brauchen :smile:

Den setInterval-Befehl habe ich nirgends in diesem
Zusammenhang gelesen und kenne Ihn auch nicht…

Hier gibts ein Beispiel: http://de.selfhtml.org/javascript/objekte/window.htm…

Wie bereits geschrieben soll die Zeit sekündlich aktualisiert
werden, ohne daß der darauffolgende Scroll-Text in
Mitleidenschaft gezogen werden soll.

Ich würde beide Aufgaben (String weiterscrollen und Zeit im String ändern) einer einzelnen Funktion überlassen und die jedes Mal aufrufen. Du musst natürlich dafür sorgen, dass die Zeit immer gleich viele Stellen hat, indem du bei kleinen Stundenzahlen Nullen vornedransetzt.

Ich möchte später - das ist aber noch Zukunftsmusik -, daß ich
mehrere Termine in eine Datei eingebe (OSD) wo (evt. auch nur)
der nächste in dem auf der Zeit folgenden Scroll-Text
ausgegeben wird.

Da JavaScript keine Möglichkeit bietet, auf Dateien zuzugreifen, kannst du höchstens eine weitere .js-Datei einbinden, in der diese Daten als Variablen vorhanden sind.

Ich persönlich finde die Idee aber immernoch überflüssig. Wenn die Termine wichtig sind, gehören sie direkt auf die Webseite, und wenn nicht, dann muss man damit auch nicht die Statuszeile zumüllen. Wenn du die Benutzbarkeit der Seite wirklich steigern und gleichzeitig noch ein bisschen rumspielen willst, solltest du dich lieber mit AJAX vertraut machen, das lohnt sich schon eher. Je nach Seite natürlich :smile:

mfg
MB

Hallo,

  • Taskleiste ist bei den meisten, die ich kenne, im
    Hintergrund - also nicht zu sehen.

in dem Fall haben die sich entschieden, dass sie keine Uhr
brauchen :smile:

Nicht unbedingt - bei mir eher ein in Kauf genommenes Übel

Ich würde beide Aufgaben (String weiterscrollen und Zeit im
String ändern) einer einzelnen Funktion überlassen und die
jedes Mal aufrufen. Du musst natürlich dafür sorgen, dass die
Zeit immer gleich viele Stellen hat, indem du bei kleinen
Stundenzahlen Nullen vornedransetzt.

So ungefähr würde ich daß auch gerne lösen - war aber bisher noch nicht gerade erfolgreich. Ein Versuch war:

function scrollMe(){
window.status = msg;
msg = msg.substring(1, msg.length) + msg.substring(0,1);
timer = setTimeout("scrollMe()", 120) + setIntervall("showtime()",1000);
}

PS: Die „0?“

Zeit aktualisieren ?!?
Hallo ihr Wissenden,

kann mir denn keiner zur Lösung verhelfen ???

Hi Alex,

Der Fehler im Programm ist, dass der Scrolltext nicht aktualisiert wird, wenn er weitergescrollt wird. So wie das Scrollen realisiert war, war wäre das auch nicht ohne weiteres gegangen.

Der Trick ist, immer vom ganzen Scrolltext auszugehen (jeder Aufruf von Scrollme() baut ihn neu auf) und den richtigen Teil herauszuschneiden, anstatt bei jedem Aufruf von ScrollMe() einen Charakter von vorne am Ende dranzuhängen.

var osd = " + + Die nächste Elternratssitzung findet am 05.04.2007 statt ! + + ";
var scrollpos = 0;
var msg = "";

function updateScrollText () {
 msg = customDateSpring(new Date())
 msg += " " + showtime() + " " + osd;
 var msglen = msg.length;
 for (var i=0; i9) ? "" : " ")
 timeValue += ((dates \>9) ? "" : " ")
 timeValue = ( months +1)
 timeValue +="/"+ dates
 timeValue +="/"+ years

 var timeValue2 = " " + hours
 timeValue2 += ((minutes 
Vergiss nicht, dass das in der Firefox-Standardeinstellung gar nichts macht. Unter Extras-\>Einstellungen-\>Inhalt-\>(Javascript)Erweitert... muss die Option 'Statuszeilentext ändern' angeklickt sein, damit Scripts dort hineinschreiben können. Die Statuszeile hat genau definierte nützliche Funktionen, das Überschreiben wird von den meisten daher mit Skepsis betrachtet, weil dies dem Browser Teile seiner Funktionalität nimmt.

Ciao,
Rudy
1 Like

Hallo Rudy,

Der Fehler im Programm ist, dass der Scrolltext nicht
aktualisiert wird, wenn er weitergescrollt wird. So wie das
Scrollen realisiert war, war wäre das auch nicht ohne weiteres
gegangen.

Der Trick ist, immer vom ganzen Scrolltext auszugehen (jeder
Aufruf von Scrollme() baut ihn neu auf) und den richtigen Teil
herauszuschneiden, anstatt bei jedem Aufruf von ScrollMe()
einen Charakter von vorne am Ende dranzuhängen.

Kapier ich gerade nicht so recht, aber ich kann auch kaum noch denken
hab ne Doppelschicht geschoben und bin reichlich platt.

Ich habe aber noch eben das Script mal nett verpackt und hochgeschossen
Dabei sind mir zwei Dinge aufgefallen:

  1. Der Scrolltext fängt erst ca. 5 Sek. nach dem load an (jedenfalls deutlich später als vorher)
  2. Das Script arbeitet nur 1x (sollte sich aber immer wiederholen) - Ich habe mal auf die schnelle:smile: die ‚timer‘-Zeilen in den Code eingebunden = 2. Start und Stillstand nach 5 Buchstaben.

Wie krieg ich das besser hin ?

GRuß Alex

GM Rudy,

Ich weiß zwar nicht genau warum, aber ich habe 2x eMail von w-w-w erhalten (19:47 + 23:34 Uhr - letztere erreichte mich erst nach meinem Posting), die bis auf function scrollMe völlig identisch sind.

aber mit der anderen „function scrollMe“ funzt es jetzt wie es sollte bis auf die Startverzögerung des Textes einwandfrei!

Kannst du dir diese Verzögerung erklären ?

Das Script hast du ja großzügig geändert… also war ich reichlich neben der richtigen Spur, gell :smile:

Wieder einmal mehr: RIESEN-DANK

Gruß Alex

PS: in function customDateSpring(oneDate) mußte ich nochmal die +1 entfernen, damit ich das richtige Datum erhalte - das war aber mittlerweile kein Problem mehr für mich.

Hi Alex,

Ich weiß zwar nicht genau warum, aber ich habe 2x eMail von
w-w-w erhalten (19:47 + 23:34 Uhr - letztere erreichte mich
erst nach meinem Posting), die bis auf function
scrollMe
völlig identisch sind.

Ja, ich habe die Antwort später korrigiert, weil mir beim Durchlesen aufgefallen war, dass ich dort einen Fehler gemacht hatte (ich hatte es nur kurz angetestet, deshalb fiel mir das nicht früher auf).

Schön, dass es funktioniert.

Ciao!
Rudy

Sorry, daß ich mich dieser Sache erst jetzt wieder annehme … Arbeit!

Ich habe das Skript auf drei Domains hochgejagt…

dieser Start-nach-5-Sekunden-Fehler ist anscheinend kein Fehler im Script, denn es dauert nur auf der ersten Domain so lange, bei den anderen beiden Domains läuft das Script reibungslos.

Bei allen drei Domains ist sowohl die Struktur in der Codierung als auch im Verzeichnisbaum gleich und sie liegen alle auf dem gleichen Server.

Das Script läuft so, wie es geplant ist und mit diesem ominösen Schönheitsfehler kann ich gut leben.

Wie schon des öfteren bin ich dir wieder einmal zu großem Dank verpflichtet.

Also nochmals Danke für deine Mühe.

Gruß Alex