Netscape 4 führt Script erst nach Reload aus!
Christian
- browser
0 $xNeTworKx0 Joachim0 Struppi
Hi,
ich habe ein JavaScript, das ich extern in eine Seite einbinde:
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<script type="text/javascript" src="test.js"></script>
</body>
</html>
in test.js steht nicht weiter als:
if(document.layers)
{
}
alert("TEST");
Jeder Browser führt das alert() aus! Beim Netscape 4 gibt es folgendes Problem:
Ich öffne NS 4 und springe direkt auf die o.g. Datei. Es passiert NICHTS. Wenn ich die Seite aktualisiere (F5, oder den Button, oder nach einem Fenster Resize) wird das Skript ausgeführt. Wechsel ich dann auf eine andere Seite, und wieder zurück, wird es sofort ausgeführt. Das Problem tritt also nur dann auf, wenn ich NS 4 NEU öffne, und als erstes die o.g. Datei aufrufe, sonst nicht.
Alle anderen Browser machen da keine Probleme!
UND: das Problem besteht auch nur dann, wenn ich nach document.layers abfrage bzw, document.layers irgendwie im Skript auftauchen! Lasse ich das weg, verhält er sich normal! Es wird nur der Code, der NACH document.layers kommt, nicht ausgeführt! Würde ich also
alert("TEST");
if(document.layers)
{
}
schreiben, würde es normal klappen!
Habe auch schon diverses ausprobiert: verschiedene Doctype-Angaben, auch das Attribut language im <script>...
Das Prob ist auch nur bei externen Dateien!
Kennt ihr das Problem?? könnt ihr das nachvollziehen??
Habt ihr ne Lösung??
Danke, Gruß
Christian
Hallo,
if(document.layers)
{
}
alert("TEST");
alert("TEST");
if(document.layers)
{
}
Was soll denn das auch ausgeben?
Schon mal mit
if(document.layers) {
alert("TEST");
}
probiert?
$xNeTworKx.
hi,
Was soll denn das auch ausgeben?
Schon mal mit
es soll ja auch nichts ausgegeben werden. Ich wollte damit nur ein Beispiel nennen, um irgendwie "document.layers" reinzubauen, da der Code danach (!) nicht mehr ausgeführt wird, (unter den von mir beschriebenen Bedingungen).
Christian
Hi,
hab mal gehoert, dass document.layers zuweilen Schwierigkeiten in externen *.js macht, konnte das aber selber noch nicht feststellen. Du kannst NC 4x alternativ auch ueber
if (document.captureEvents && !document.getElementById) {
// mach_was();
}
identifizieren.
hth
Gruesse Joachim
Hi,
hab mal gehoert, dass document.layers zuweilen Schwierigkeiten in externen *.js macht, konnte das aber selber noch nicht feststellen. Du kannst NC 4x alternativ auch ueber
Das beruhigt mich ja, das das andere auch gehört haben. Scheint wohl ein Bug zu sein!
if (document.captureEvents && !document.getElementById) {
// mach_was();
}
Danke, damit klappts glaub ich!
Gruß
Christian
in test.js steht nicht weiter als:
if(document.layers)
{
}
alert("TEST");Jeder Browser führt das alert() aus! Beim Netscape 4 gibt es folgendes Problem:
Dann ist innerhalb von if(document.layers) {..} ein Fehler
Ich vermute mal schwer, dass du innerhalb der if bedigungn auf ein Objekt zugreifen willst, das erst nach onload zu Verfügung steht.
Bau dein externens Skript entweder ganz ans Dokumenten Ende vor </body> oder rufe die Funktion erst nach onload auf.
Struppi.