NS-Bug, Denkfehler oder was?
Jürgen Stein
0 Calocybe
folgende "HTML" Seite, hat folgendes Problem...
meiner Meinung nach sollten der Reihe nach msg boxen mit 1,2,3 und 4 kommen, und dann eine mit "fertig", es kommen aber nur 1 udn 2. er bricht sämtliches JS ab - ohne Fehlermeldung...
was ist falsch daran?
!!! Nur für Netscape !!!
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
document.write("<LAYER name=settitle visibility=hidden></LAYER>");
function SetTitle(szTitle) {
if (document.settitle) {
alert("1");
document.settitle.document.open("text/html","replace");
alert("2");
document.settitle.document.write("<HTML><HEAD><TITLE>xxxxxx</TITLE></HEAD></HTML>");
alert("3");
document.settitle.document.close();
alert("4");
}
}
</SCRIPT>
</HEAD>
<BODY>
<B>Hallo</B>
</BODY>
<SCRIPT language="JavaScript">
SetTitle("Main");
</SCRIPT>
</HTML>
-Jürgen
Hi!
meiner Meinung nach sollten der Reihe nach msg boxen mit 1,2,3 und 4 kommen, und dann eine mit "fertig", es kommen aber nur 1 udn 2. er bricht sämtliches JS ab - ohne Fehlermeldung...
was ist falsch daran?
Es liegt also nahe, dass vor der 3 ein Fehler auftritt. Warum bekommst Du also keine Fehlermeldung? Weil NS ab Version ca. 4.05 nur in der Statuszeile "JavaScript Error" hinschreiben, ohne den Webseitenbesucher mit haesslichen Popups zu nerven. Tippe javascript: in die Locationbar und Du bekommst die Fehlermeldung(en) angezeigt. Oder nimm die Zeile
user_pref("javascript.console.open_on_error", true);
in Deine prefs.js auf und Du bekommst das nervende Popup wieder standardmaessig.
Und was ist nun der Fehler? Der Name eines Layers (und der meisten anderen HTML-Elemente) wird nicht ueber das NAME Attribut gesetzt, sondern mit ID. De facto hast Du gar keinen Layer namens settitle, weshalb Netscape sich weigern wird, irgendwas mit ihm zu machen. Allerdings wundert mich in diesem Zusammenhang, dass Du weiter unten bei "Windowtitel nachtraeglich aendern" es geschafft hast, einen neuen Inhalt vom Server aus dort reinzuladen. Sogesehen bin ich mir meiner Analyse nicht ganz sicher.
Calocybe