Was mit IE4 nicht geht
Thomas Mirke
- browser
0 Ulixes0 Thomas Mirke
Habe festgestellt, daß folgende features mit dem IE4.0 unter Windows 95 SP1 nicht funktionieren. Kann das jemand bestätigen?
1. Der IE4 reagiert sehr empfindlich auf HTML-Kommentare <!-- --> in js-Dateien und gibt eine Fehlermeldung aus.
2. Der IE4 mag keine dynamische Änderung von <div ... position:absolute> in <div ... position:relative>, was im IE5 problemlos ist.
3. Bei Aufruf von window.print() erfolgt durch den IE4 die Fehlermeldung "Objekt unterstützt diese Eigenschaft oder Methode nicht"
4. Fast das interessanteste Phänomen: Ist zwischen dem <script> ... </script - Bereich und dem <body> ein <object></object> eingefügt, reagiert der IE4 nicht auf ein onload oder andere Eventhandler im <body>-Tag. Es klappt wieder, wenn das Objekt z.B. ans Ende des Files befördert wird.
Schönen Gruß, Thomas
P.S.: Kann es sein, daß die Online-Suche wieder nicht geht? Oder sollte es zum Stichwort "onload" wirklich 0 Fundstellen geben?
Hi Thomas
- Der IE4 reagiert sehr empfindlich auf HTML-Kommentare <!-- --> in js-Dateien und gibt eine Fehlermeldung aus.
Versuchs mal mit /* */ zum Auskommentieren innerhalb JavaScripts
- Fast das interessanteste Phänomen: Ist zwischen dem <script> ... </script - Bereich und dem <body> ein <object></object> eingefügt ...
Na, du musst dich schon entscheiden, ob du jetzt ein JavaScript-Bereich oder object-Bereich definieren willst.
Innerhalb eines JavaScripts mit HTML-Tags daherzukommen mag wohl kein vernünftiger Browser richtig interpretieren.
zu 2. 3. : Wenn du da auch so verquer programmierst, wundert mich nichts mehr
Nix für ungut,
Ulixes
Hallo, hier scheint es Mißverständnisse zu geben.
1. Es ist ja gängig, innerhalb <script> bis </script> HTML-Kommentarzeichen zu setzen, damit ältere Browser die Code-Zeichen nicht als Text ausgeben. Beispiel hier aus dem Forum:
<script language="JavaScript">
<!--
alert("Hallo Welt!");
//-->
</script>
Wer nun darangeht (nur als Beispiel), den "inneren Teil" einfach in eine js-Datei auszulagern, also
<!--
alert("Hallo Welt!");
//-->
erhält im IE4 eine Fehlermeldung wegen des <!--, das er nicht mag. Da die Fehlermeldungen immer etwas kryptisch sind, ist es vielleicht hilfreich, das zu wissen.
4. "Innerhalb eines JavaScripts mit HTML-Tags daherzukommen mag wohl kein vernünftiger Browser richtig interpretieren." Das ist richtig, war aber von mir nicht gemeint. Ausführlicheres Beispiel, dann wird es vielleicht klarer:
-------------------
<html>
<script language="JavaScript">
<!--
function start()
{
alert("Hallo Welt!");
}
//-->
</script>
<Object id=hhctrl type="application/x-oleobject"
classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"
codebase="hhctrl.ocx#Version4,73,8561,0">
<param name="Command" value="HH Version">
</object>
<body onload="start()">
...
</body>
</html>
------------------
Das funktioniert leider im IE4 so nicht. Was aber geht, ist:
------------------
<html>
<script language="JavaScript">
<!--
function start()
{
alert("Hallo Welt!");
}
//-->
</script>
<body onload="start()">
...
</body>
<Object id=hhctrl type="application/x-oleobject"
classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"
codebase="hhctrl.ocx#Version4,73,8561,0">
<param name="Command" value="HH Version">
</object>
</html>
--------------------
Finde ich ein interessantes Phänomen.
Der <object>-Teil-Inhalt ist natürlich nur ein Beispiel.
Thomas
Hi Thomas!
Ah ja, jetzt sehe ich klarer!
1. Das ist ja auch logisch. Wie du gesagt hast, setzt man den JavaScript-Text in <!-- //--> damit er von Browsern, die das Javascript-Tag nicht kennen, nicht interpretiert wird.
Ein solch ein Browser würde dann aber auch nicht die externe JS-Datei einbinden, womit die Auskommentierung in einer externen JS-Datei absolut überflüssig ist.
4. Schlag mich, wenn ich falsch liege, aber werden objects nicht innerhalb des <body>'s eingebunden?
Ulixes
- Schlag mich, wenn ich falsch liege, aber werden objects nicht innerhalb des <body>'s eingebunden?
Beim IE5 habe ich eigentlich bisher festgestellt, daß es ganz egal ist.
Objects außerhalb des body-tags haben sogar Vorteile, da manche objects auch eine height-Angabe benötigen, was auf der Seite (wie ein leerer Absatz) unschön aussieht.
Wie gesagt, wenn man die object-Angabe zwischen </body> und </html> einbaut, hat auch der IE4 kein Problem damit. Ist doch seltsam, oder?
Im Beispiel fehlt der <head>-Bereich, das ist wahr, spielt aber für das "Phänomen" keine Rolle.
Spannend ist auch noch die andere Sache mit "window.print()". Immerhin steht auch hier im Forum, das ginge mit dem IE4. Mit dem IE4.01 geht es jedenfalls nicht.
Thomas
Hallo Thomas
Was sagt eingentlich der NN dazu ;-) ?
Spannend ist auch noch die andere Sache mit "window.print()". Immerhin steht auch hier im Forum, das ginge mit dem IE4. Mit dem IE4.01 geht es jedenfalls nicht.
Laut <../../tecb.htm#a36> geht das nur mit NN ab 4.0 (steht zwar nicht im Text, aber die Bildchen sind ja hoffentlich genauso eindeutig <g>, oder was meint der Author ?).
Gruß AlexBausW
"window.print()":
Laut <../../tecb.htm#a36> geht das nur mit NN ab 4.0 (steht zwar nicht im Text, aber die Bildchen sind ja hoffentlich genauso eindeutig <g>, oder was meint der Author ?).
»»
Hallo Alex,
ja, Du hast recht. Hab wohl nur 4.0 gelesen, da ich nur auf der CHM-Schiene arbeite (HTML-Help-Workshop), habe ich den Microsoft-Tunnelblick ... <g>
Danke, Thomas
Hallo Thomas
- Es ist ja gängig, innerhalb <script> bis </script> HTML-Kommentarzeichen zu setzen, damit ältere Browser die Code-Zeichen nicht als Text ausgeben. Beispiel hier aus dem Forum:
<script language="JavaScript">
<!--
»» alert("Hallo Welt!");
//-->
</script>
Wer nun darangeht (nur als Beispiel), den "inneren Teil" einfach in eine js-Datei auszulagern, also
erhält im IE4 eine Fehlermeldung wegen des <!--, das er nicht mag. Da die Fehlermeldungen immer etwas kryptisch sind, ist es vielleicht hilfreich, das zu wissen.
Die Html-Kommentarzeichen benötigst Du imho in der externen Datei eigentlich nicht, da scriptlose Browser die externe Datei afaik auch nicht laden.
//<!-- und //--> ist ja nur dazu gedacht, den Code innerhalb der Html-Datei vor solchen Browseren zu verstecken. Ich setze übrigens immer vor das öffnende Kommentarzeichen auch ein JavaScript-Zeilenkommentarzeichen.
- "Innerhalb eines JavaScripts mit HTML-Tags daherzukommen mag wohl kein vernünftiger Browser richtig interpretieren." Das ist richtig, war aber von mir nicht gemeint. Ausführlicheres Beispiel, dann wird es vielleicht klarer:
<html>
<script language="JavaScript">
<!--
function start()
{
alert("Hallo Welt!");
}
//-->
</script>
<Object id=hhctrl type="application/x-oleobject"
classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"
codebase="hhctrl.ocx#Version4,73,8561,0">
<param name="Command" value="HH Version">
</object><body onload="start()">
...
</body>
</html>Das funktioniert leider im IE4 so nicht. Was aber geht, ist:
Hier scheint mir erstmal der <head></head> zu fehlen (kann mir gar nicht vorstellen, daß das der NN schluckt ;-).
Zweitens würde ich nachschauen, ob das <object>-Tag überhaupt im Head zulässig ist (vermute mal nicht, müsste aber auch erst nachschlagen, da ich bis jetzt noch nicht mit <object> gearbeitet habe :-).
Ich hoffe, das führt Dich auf die richtige Spur.
Gruß AlexBausW