JavaScript && [HTML] Dokumenttyp-Deklaration vernichtet JS...

Yuri_Orlov

Cadet 3rd Year
Registriert
Juli 2008
Beiträge
41
Hallo Community!

Ich habe eine JS welches ohne Dokumenttyp-Deklaration funktioniert.
Sobald ich deklariere wird das Script ignoriert.

läuft nicht:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
   <title>Test</title>
</head>
<body>

<input type="submit" onClick="javascript:document.all.loadingMessage.style.visibility = 'visible'">

<div id="loadingMessage" style="visibility:hidden">
Suchvorgang wird ausgef&#252;hrt. Bitte warten...
</div>
</body>
</html>

läuft:
Code:
<html>
<head>
   <title>Test</title>
</head>
<body>

<input type="submit" onClick="javascript:document.all.loadingMessage.style.visibility = 'visible'">

<div id="loadingMessage" style="visibility:hidden">
Suchvorgang wird ausgef&#252;hrt. Bitte warten...
</div>
</body>
</html>

Hat jemand einen Rat für mich?
 
Hallo,

Versuchs so:

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
   <title>Test</title>
</head>
<body>

<input type="submit" onClick="javascript:document.getElementById('loadingMessage').style.visibility = 'visible'" />

<div id="loadingMessage" style="visibility:hidden;">
Suchvorgang wird ausgeführt. Bitte warten...
</div>
</body>
</html>

mfg
mitos
 
Die Variante des Doctypes über zwei Zeilen ist schon richtig so, um in den standardkonformen Modus zu schalten, was generell sehr empfehlenswert ist!

Das Problem ist, dass "standardkonform" auch heißt, dass "document.all" nicht definiert ist. Das ist nämlich eine Microsoft-Erfindung und wird nur aus Kompatibilitätsgründen von anderen Browsern unterstützt. Benutzen sollte man das aber lieber nicht! Besser macht man das so, dann funktioniert das auch mit dem richtigen Doctype:

HTML:
<input type="submit" onClick="javascript:getElementById('loadingMessage').style.visibility = 'visible'">
 
Also das mit den zwei Zeilen und Standard Mode hab ich noch nirgends gelesen?

Außerdem ist das javascript: im onclick Event unnötig und ein document.getElementById() reicht vollkommen aus.
 
Hm, stimmt. Ich meine mal vor vielen Jahren gelesen zu haben, dass der Doctype über zwei Zeilen damals beim IE6 nötig war. Das kann ich aber gerade auch nicht mehr nachvollziehen. Naja, macht ja nichts.
 

Ähnliche Themen

Zurück
Oben