Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Problem mit Umleitung u. ext. Scriptdatei
Frage
Hallo Leute,
in meinen Webseiten habe ich ein kleines Script welches mir das letzte Aktualisierungsdatum
einblendet und ein weitere Script welches den Frame nachlädt wenn die Seite
einzel aufgefufen wird. Im Prinzip funktioniert das ganz gut. Was mich stört ist, das ich jedesmal den kompletten
Code in die Seite einfügen muss. Habe es auch mal mit einer externen Script-Datei
versucht, aber das klappt nicht. Vielleicht kann mir hierzu mal jemand einen
Tip geben oder sagen wie es richtig geht.
So sieht es ungfähr in jeder Seite aus:
Sript im Header
[code]
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
if(parent.location.href==self.location.href){window.location.href='../menu/index.htm?../../html/seitenname1.htm'}
//-->
....
Hier steht dann der Code für die Datum-Funktion
....
</SCRIPT
[/code]
Sript am Ende der Seite
[code]
<script language="JavaScript">DocDateShort()</script>
[/code]
Mein Problem ist, wenn ich eine externe Sriptdatei benutze und mit
[code]
<SCRIPT src="../myjava/scripte.js" LANGUAGE="JavaScript" TYPE="text/javascript">
[/code]
darauf verweise, funktinoiert die Sache mit dem Frameaufruf nicht mehr.
Idealerweise mußte die Funktion auch in der Script-Datei stehen. Doch da ja der
Seitenname immer anders lautet, müßte ich beim Aufruf immer den aktuellen
Seitenamnen als Parameter mitgeben.
Hoffe das ich mich einigermaßen vertsändlich ausgedrückt habe und würde
mich freuen wenn es ein Lösung dafür gibt.
Viele Grüße
Andreas
Antwort 1 von Dr.Ma-Busen
Hallo!
Wen ja, dann musst du noch das <script>- Tag schliessen mit </script>
MfG
Dr.Ma-Busen
<SCRIPT src="../myjava/scripte.js" LANGUAGE="JavaScript" TYPE="text/javascript">Hast du das so auch in deinem Quelltext stehen?Wen ja, dann musst du noch das <script>- Tag schliessen mit </script>
<script language="JavaScript">DocDateShort()</script>Das würde ich mit onload="DocDateShort()" im <body>- Tag machen.MfG
Dr.Ma-Busen
Antwort 2 von andreasclaas
Hallo,
danke für Deine Antwort.
</script> habe ich drin. Das Problem scheint ja zu sein, wenn auf die Datei scripte.js umgeleitet wird, der darunter liegende Befehl "if parent..."
nicht mehr ausgeführt wird.
Kannst Du mir sagen welchen Unterschied es zwischen dem Aufruf mit onload zu meiner Version gibt?
VieleGrüße
Andreas
danke für Deine Antwort.
</script> habe ich drin. Das Problem scheint ja zu sein, wenn auf die Datei scripte.js umgeleitet wird, der darunter liegende Befehl "if parent..."
nicht mehr ausgeführt wird.
Kannst Du mir sagen welchen Unterschied es zwischen dem Aufruf mit onload zu meiner Version gibt?
VieleGrüße
Andreas
Antwort 3 von Dr.Ma-Busen
Moin!
Bei deiner Version wird die Funktion DocDateShort() aufgerufen bzw. gestartet wenn der Browser die Anweisung geladen hat. Wenn das im <body>- Tag steht wird die Fuktion erst aufgerufen wenn der Body der HTML- Seite geladen wurde, also nach dem der Browser das end Tag </body> geladen hat. Mit anderen Worten, wenn die Seite so gut wie Fertig geladen hat.
Bei deiner Version wird die Funktion DocDateShort() aufgerufen bzw. gestartet wenn der Browser den Scriptbereich geladen hat. Wenn das im <body>- Tag steht wird die Fuktion erst aufgerufen wenn der Body der HTML- Seite geladen wurde, also nach dem der Browser das end Tag </body> geladen hat. Mit anderen Worten, wenn die Seite so gut wie Fertig geladen hat.
MfG
Dr.Ma-Busen
Bei deiner Version wird die Funktion DocDateShort() aufgerufen bzw. gestartet wenn der Browser die Anweisung geladen hat. Wenn das im <body>- Tag steht wird die Fuktion erst aufgerufen wenn der Body der HTML- Seite geladen wurde, also nach dem der Browser das end Tag </body> geladen hat. Mit anderen Worten, wenn die Seite so gut wie Fertig geladen hat.
Bei deiner Version wird die Funktion DocDateShort() aufgerufen bzw. gestartet wenn der Browser den Scriptbereich geladen hat. Wenn das im <body>- Tag steht wird die Fuktion erst aufgerufen wenn der Body der HTML- Seite geladen wurde, also nach dem der Browser das end Tag </body> geladen hat. Mit anderen Worten, wenn die Seite so gut wie Fertig geladen hat.
MfG
Dr.Ma-Busen
Antwort 4 von andreasclaas
..mh, ich probier mal ob das hilft.
Viele Grüße
Andreas
Viele Grüße
Andreas
Antwort 5 von Dr.Ma-Busen
Ups!
Eigentlich sollte der Text von meinen letzten beitrag da nicht 2 mal stehen :-/
Da habe ich wohl beim kopieren etwas falsch gemacht. *schäm*
Eigentlich sollte eine absatz von den beiden so lauten:
------------
Ich weis jetzt nicht was du mit "der darunter liegende Befehl "if parent..."" meinst?? Wo darunter?
Meinst du mit in dem Script bereich wo du die Externe JS- Datei eingebunden hast? Also <script type=.. src="datei.js"> Weitere JS Anweisungen </script>
Wenn du das so hast dann geht das nicht. Weil der JS- Code nur dann ausgeführt wird wenn beim laden der JS- Datei ein fehler aufgetreten ist.
-----------
Wieso ist mir das nicht schon gestern, ähm heute morgen aufgefallen.
SORRY!
MfG
Dr.Ma-Busen
Eigentlich sollte der Text von meinen letzten beitrag da nicht 2 mal stehen :-/
Da habe ich wohl beim kopieren etwas falsch gemacht. *schäm*
Eigentlich sollte eine absatz von den beiden so lauten:
------------
Ich weis jetzt nicht was du mit "der darunter liegende Befehl "if parent..."" meinst?? Wo darunter?
Meinst du mit in dem Script bereich wo du die Externe JS- Datei eingebunden hast? Also <script type=.. src="datei.js"> Weitere JS Anweisungen </script>
Wenn du das so hast dann geht das nicht. Weil der JS- Code nur dann ausgeführt wird wenn beim laden der JS- Datei ein fehler aufgetreten ist.
-----------
Wieso ist mir das nicht schon gestern, ähm heute morgen aufgefallen.
SORRY!
MfG
Dr.Ma-Busen
Antwort 6 von andreasclaas
..hatte mir schon gedacht das da etwas schief gegangen ist, aber ungfähr wußte ich was Du meinst.
Ich schreib nochmal wie die Zeilen im Header bei mir aussehen:
In dieser Form führt der die Datumfunktion in scripte.js aus, aber nicht mehr "if(parent.location...."
Ich hätte aber beides ganz gerne :-)
Andreas
Ich schreib nochmal wie die Zeilen im Header bei mir aussehen:
<SCRIPT src="../includes/scripte.js" LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
if(parent.location.href==self.location.href){window.location.href='../start/menu/index.htm?../../html/seite1.htm'}
//-->
</SCRIPT>
In dieser Form führt der die Datumfunktion in scripte.js aus, aber nicht mehr "if(parent.location...."
Ich hätte aber beides ganz gerne :-)
Andreas
Antwort 7 von Dr.Ma-Busen
Du musst die if- Abfrage in einen eigenen Scriptbereicht packen. Weil wenn du es so machst wie in deiner Antwort 6, dann wird der Javascript Code zwischen <script type=...> und </script> nur dann ausgeführt wenn beim laden der Datei scripte.js ein Fehler auftritt (z.B. falsch verlinkt).
Also einmal die Externe JS- Datei einbinden
und einmal die if- Abfrage dann in einen extra Scriptbereich
Dann sollte es laufen.
MfG
Dr.Ma-Busen
Also einmal die Externe JS- Datei einbinden
<SCRIPT src="../includes/scripte.js" LANGUAGE="JavaScript" TYPE="text/javascript"></SCRIPT>und einmal die if- Abfrage dann in einen extra Scriptbereich
<script type="text/javascript">
<!--
if(parent ....
//-->
</script>Dann sollte es laufen.
MfG
Dr.Ma-Busen
Antwort 8 von andreasclaas
Super, es funktioniert.
Vielen Dank. So kann ich meine Seiten wier etwas schlanker machen.
Viele Grüße
Andreas
Vielen Dank. So kann ich meine Seiten wier etwas schlanker machen.
Viele Grüße
Andreas

