Javascript und Doctype
Mssmar
- javascript
Hallo,
Wenn ich den Doctype:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
mit dem folgenden Script:
<!--
ns4 = (document.layers) ? true:false
ie = (document.styleSheets && document.all) ? true:false
ns6 = document.getElementById && !document.all;
opera= (document.all && !document.styleSheets) ? true:false;
//alert("NS4: " + ns4 + "nIE: " + ie + "nNS6: " + ns6 + "nOpera: " + opera);
top_position = 20;
function move_banner() {
if (ie) document.all.stickyad.style.top = document.body.scrollTop + top_position;
if (ns6||opera) document.getElementById("stickyad").style.top = pageYOffset + top_position;
if (ns4) document.stickyad.top = pageYOffset + top_position;
setTimeout("move_sticky()",200);
}
move_banner();
//-->
</script>
verwende, dann funkz. das ganze unter IE und Mozilla einwandfrei.
Aber wenn ich es mit dem Doctype:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
verwende, dann tut sich nichts.
Über die Fehler-Konsole (IE und Firefox) erhalte ich keine Felhermeldung. Also ich kann den Fehler überhaupt nicht orten bzw.
lokalisieren.
Eine Idee oder Tipp?
Danke und Gruß
Mssamr
Sorry, ich habe da was vergessen:
Also noch Mal:
JavaScript-Code:
<script>
<!--
ns4 = (document.layers) ? true:false
ie = (document.styleSheets && document.all) ? true:false
ns6 = document.getElementById && !document.all;
opera= (document.all && !document.styleSheets) ? true:false;
top_position = 20;
function move_banner() {
if (ie) document.all.stickyad.style.top = document.body.scrollTop + top_position;
if (ns6||opera) document.getElementById("stickyad").style.top = pageYOffset + top_position;
if (ns4) document.stickyad.top = pageYOffset + top_position;
setTimeout("move_sticky()",200);
}
move_banner();
//-->
</script>
Html-Code:
<div id="stickyad" style="position:absolute;left:478px;width:120px;padding:0px;top=top_position">
<img src="sky_120x600.gif" width="120" height="600" border="0" alt="Hier klicken!">
</div>
Hallo Mssmar,
<div id="stickyad" style="position:absolute;left:478px;width:120px;padding:0px;top=top_position">
"top=top_position" kenne ich nicht. Bei dieser CSS-Angabe wundert es mich, dass sich überhaupt etwas bewegt hat.
Gruß, Jürgen
Hi!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Dadurch wird der Browser nicht in den standardkormen Modus geschaltet.
Hier kannst du nachlesen, was der Doctype-Switch ist:
<http://www.carsten-protsch.de/zwischennetz/doctype/>
> Aber wenn ich es mit dem Doctype:
> ~~~html
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
>
verwende, dann tut sich nichts.
Dadurch wird der Browser in den standardkompatiblen Modus geschaltet.
Eine Idee oder Tipp?
Korrekten Code schreiben.
Vermutlich brauchst du einen CDATA-Bereich.
http://de.selfhtml.org/html/xhtml/unterschiede.htm#script_style
Schöner Gruß,
rob
<!--
Wozu das?
if (ns6||opera) document.getElementById("stickyad").style.top = pageYOffset + top_position;
Weiter unten in der Style Angabe im Quellcode machst du es richtig, hier verläßt du dich darau, dass der Browser rät was du meinst. Für die Angabe top (oder andere Größen in CSS) gibt es eine Reihe von Einheiten.
Über die Fehler-Konsole (IE und Firefox) erhalte ich keine Felhermeldung. Also ich kann den Fehler überhaupt nicht orten bzw.
Keine Fehlermeldung, aber du bekommst im FF eine Warnung.
Struppi.
Hallo,
Weiter unten in der Style Angabe im Quellcode machst du es richtig, hier verläßt du dich darau, dass der Browser rät was du meinst. Für die Angabe top (oder andere Größen in CSS) gibt es eine Reihe von Einheiten.
vielen Dank schon Mal für die Tipps.
Ich check das ganze noch Mal
Gruß
Mssmar