• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[GELÖST] Last modified + text in document.title

Insulaner

New member
Hallo allerseits,
folgende Situation: Ich habe eine Funktion "last modified" in eine externe JS-Datei update.js ausgelagert und schreibe den Wert der aus einem Text, Datum und Uhrzeit zusammengesetzten Variablen modified mithilfe von:
Code:
	<script src="syst/update.js" type="text/javascript"></script>
		<script type="text/javascript">
				document.title =modified;
		</script>
in die Titelzeile meiner HTML-Seite. Nun möchte ich dieser Variable noch einen kleinen Hinweis anhängen, der ebenfalls per JavaScript aus einer TXT-Datei geholt werden soll. Meine bisherigen Versuche mit
Code:
	<script src="text/hinweis.txt" type="text/javascript"></script>
<script>
<!–
 document.writeln(hint);
//–>
</script>
den Inhalt
Code:
	var hint='Hinweistext';
entweder in den Head der HTML-Datei oder die update.js zu holen, sind leider gescheitert.

Wie würde das ein Profi machen, der sich in der Lage sieht, es einem JS-Anfänger zu erklären?

Viele Dank für Ihre Aufmerksamkeit ;-)

Insulaner
 
Zuletzt bearbeitet von einem Moderator:
Wie würde das ein Profi machen
Nicht mit JS, sondern auf der Serverseite.

PS: Wenn du es wirklich unbedingt mit JS machen willst... warum machst du nicht einfach document.title = modified + hinweis; nach beiden JS-Dateien?
PPS: document.write()...

Zu document.write:
http://www.w3.org/html/wg/drafts/html/CR/webappapis.html#dynamic-markup-insertion schrieb:
This method has very idiosyncratic behavior. In some cases, this method can affect the state of the HTML parser while the parser is running, resulting in a DOM that does not correspond to the source of the document (e.g. if the string written is the string "<plaintext>" or "<!--"). In other cases, the call can clear the current page first, as if document.open( ) had been called. In yet more cases, the method is simply ignored, or throws an exception. To make matters worse, the exact behavior of this method can in some cases be dependent on network latency, which can lead to failures that are very hard to debug. For all these reasons, use of this method is strongly discouraged.
 
Hallo KK,

ich gebe zu "idiosyncratic" und "discouraged" musste ich nachschlagen, nehme den Hinweis aber gelassen ;-))

Danke für den Tipp mit document.write. Den vorgeschlagenen Weg hatte ich mit document.writeln versucht, war aber nicht in der Lage (zu dusselig) den Text in eine Variable zu schicken.

Wie würde der Code denn aussehen, wenn ich die TXT im externen Skript auslese?

Bisher habe ich:
Code:
var modified =("blabla | Stand: "+date+". "+month+" "+year+" | "+hours+":"+minutes+" | Hinweis "+hint);

Der Server-Seite für wirkliche Profis fällt leider aus, weil die Seite auf einem Server ohne PHP, SQL usw. läuft (privater Anfänger-Kleinkram eben). Nur für dieses eine (kleine) Thema muss kein Profi-Server her. JavaScript kann so viel, dass es nicht noch eine weitere Sprache braucht.

DANKESCHÖN!

Insulaner
 
ich gebe zu "idiosyncratic" und "discouraged" musste ich nachschlagen, nehme den Hinweis aber gelassen ;-))
womit du genau richtig handelst.
richtig ist, dass es mit document.write ein paar spezialfälle zu beachten gibt, die in den meisten fällen konstruiert sind.
richtig ist auch, dass es für viele funktionen ein paar spezialfälle zu beachten gibt.
richtig ist aber auch, dass es für document.write eigentlich nie einen anwendungsfall gibt. in deinem fall auch. wenn du mit
Code:
<script src="text/hinweis.txt" type="text/javascript"></script>
deine textdatei einbindest, die js-code enthält
Code:
var hint='Hinweistext';
gibt es keinen grund sie
Code:
entweder in den Head der HTML-Datei oder die update.js zu holen
denn sie ist ab der stelle wo du das script einbindest als globale variable verfügbar. sprich du könntest, wenn du deine update.js nach text/hinweis.txt einbindest einfach in update.js auf die globale variable hint zugreifen. was aber eigentlich vermieden werden sollte, weil globale variable immer seiteneffekte haben können, die nicht in deiner hand liegen - im gegensatz zu denen von document.write, die bestimmst du.
 
Hallo tsseh,

Danke für Deine Erläuertungen. Hintergrund dieses kleinen Problems ist, dass (noch ahnungslosere) Autoren (als ich es schon bin), die die Inhalte der Seite bestimmen (in diesem Fall den Hinweis), weder in JavaScript noch in HTML herummalen sollen. Diese Jungs haben nur Zugriff auf ein Verzeichnis text, und das soll auch so bleiben. Dennoch muss der Hinweis gelegentlich aktualisiert werden.

Thema meiner Anfrage ist tatsächlich meine Unfähigkeit, den kleinen o.g. Code, mit dem ich sonst erfolgreich Texte in HTML-Divs übertrage in eine Variable zu holen. Die folgende Antwort von KK hilft mir leider auch, denn wenn es so einfach wäre ("funktioniert gleich"), hätte ich es vielleicht schon gerafft. Ich denke, mir fehlt einach nur irgendwo ein Script-Tag (oder ist er zuviel), ein Semikolon oder die Klammern stimmen nicht.

Meine Lieblingsversion wäre die Einbindung der Text-Datei in das update.js ...

Dankeschön!

Insulaner
 
Ich verstehe immer noch nicht, wo genau dein Problem ist. Wenn der Ansatz mit dem modified funktioniert (wir wissen nicht, wie ... AHHHHHHHHH jetzt verstehe ich dein Problem. Du kannst nicht einfach eine .txt-Datei in einem <script> einbinden und dann hoffen, dass der Browser dann automatisch eine Variable erzeugt (es sollte Einträge in der Fehlerkonsole erzeugen...). Du musst über AJAX gehen: https://developer.mozilla.org/en-US/docs/AJAX
Les' dich da einfach mal ein bisschen ein. Bei konkreten Fragen kannst du hier ja nachfragen.
 
Mh... stimmt... dann verstehe ich das Problem doch noch nicht.

@insulaner: kannst du uns nicht einen Testlink geben, so wir uns das Problem live ansehen können.
 
Hallo tsseh & KK,

ich bastle das ganze Problem mal in ein Beispielskript. Vor Samstag nachmittag komme ich leider nicht dazu.

Danke für Eure fortwährende Neugier!

Das var hint = 'Hinweistext'; weicht tatsächlich von der Vorgabe (text only für Autoren) ab. Sorry für die Ungenauigkeit.

Insulaner
 
GELÖST: Last modified + text in document.title

Und ich sach noch: irgendwo fehlt eine Klamer oder ein Semikolon ... es war ein "s"

Beim Basteln des Beispielskripts habe ich eben den Fehler entdeckt und das Problem gelöst. Anders als hier in meiner Anfrage war die Variable hint tatsächlich mit dem Namen ver definiert, womit ich einen Begriff erwischt habe (eventuell aus jquery?), der mir dann als undefined zurückgegeben wurde.

Seitdem ich das in vers geändert habe, funktioniert die Übernahme in den document.title wie gewünscht. Wie von KK beschrieben, ist es auch völlig egal, ob ich den Aufruf im head oder im externen Skript starte.

VIELEN DANK!

Insulaner
 
Eigentlich ist ver kein "geschützter" Name (und auch wenn du was von jQuery verwendet hättest, würde das dann nicht undefined ergeben - nur wenn du irgendwas vom window verwendest (wie z.B. name) kann das ev. zu Problemen führen), aber wenn es jetzt mit vers funktioniert...

Bitte - gern geschehen. Hatte schon an mir gezweifelt...;)
 
Zurück
Oben