PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Doctype-Angabe ruiniert Webseite


RMC
2005-03-31, 22:40:07
Ich hab auf meiner Seite ein Javascript, welches die gesamte Seite mittig positionieren soll. Dazu habe ich Funktionen im Header, sowie mehrere Scripte innerhalb der HTML Seite.

Wenn ich jetzt eine Doctype Angabe ganz zu Beginn der Seite mache (noch vor der html-Tag), nämlich diese hier:

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

dann funktioniert mein Skript nicht mehr. Wenn ich diese Angabe wieder weggebe, dann geht die Seite wieder wie sie soll :ugly: warum?

alkorithmus
2005-04-01, 12:46:13
dann funktioniert mein Skript nicht mehr.

wie kann ich mir das vorstellen?...

das skript ist kaputt und daher nicht mehr da?..

oder wirklich nur kleine debenheiten?

Gast01
2005-04-01, 15:14:20
Hi,

such mal nach Doctype-Switch (bzw. Quirks- und Standards- Mode).

Gast01

Misda
2005-04-01, 16:04:26
Wäre eventuell hilfreich die Seite zu sehen ;-)

RMC
2005-04-01, 18:32:55
wie kann ich mir das vorstellen?...

das skript ist kaputt und daher nicht mehr da?..

oder wirklich nur kleine debenheiten?

das Javascript funktioniert dann nicht mehr wie es soll...was eigentlich ein Schmarrn is weil warum sollte das plötzlich nicht mehr gehen wegen einer Doctype-Angabe? Aber es ist so :(

Das HTML sieht so aus (ist aufs wesentliche gekürzt). Das Javascript soll lediglich ein Div horizonal & vertikal zentrieren.


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

<html>
<head>
<link rel="stylesheet" type="text/css" href="stylesheet.css">
<meta http-equiv="content-type"content="text/html;charset=iso-8859-1">
<meta http-equiv="imagetoolbar" content="no">
<script language="JavaScript" type="text/javascript">
function Fensterweite()
{
if (window.innerWidth) return window.innerWidth;
else if (document.body && document.body.offsetWidth) return document.body.offsetWidth;
else return 0;
}

function Fensterhoehe()
{
if (window.innerHeight) return window.innerHeight;
else if (document.body && document.body.offsetHeight) return document.body.offsetHeight;
else return 0;
}

function neuAufbau()
{
if (Weite != Fensterweite() || Hoehe != Fensterhoehe())
window.history.go(0);
}

/*Überwachung von Netscape initialisieren*/
if(!window.Weite && window.innerWidth)
{
window.onresize = neuAufbau;
Weite = Fensterweite();
Hoehe = Fensterhoehe();
}
</script>
</head>
<body>
<script language="JavaScript" type="text/javascript">

/*Überwachung von MS Internet Explorer initialisieren*/
if(!window.Weite && document.body && document.body.offsetWidth)
{
window.onresize = neuAufbau;
Weite = Fensterweite();
Hoehe = Fensterhoehe();
}
</script>

<div id="site">
</div>
<script language="JavaScript" type="text/javascript">

w = (Weite - 720) / 2;
h = (Hoehe - 580) / 2;

if(w > 0)
{
document.getElementById("site").style.left = w;
}

if(h > 0)
{
document.getElementById("site").style.top = h;
}

document.onclick = closeAllMenu();

</script>
</body>
</html>

R300
2005-04-01, 19:30:30
Hatte sowas auch schon mal.
Schreib einfach das hier als Doctype, dann sollte das gehen.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

(Bei mir hats zumindest geholfen, ka ob es bei dir auch funzt)

Sephiroth
2005-04-01, 20:02:58
Hatte sowas auch schon mal.
Schreib einfach das hier als Doctype, dann sollte das gehen.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

(Bei mir hats zumindest geholfen, ka ob es bei dir auch funzt)
dann wird aber im Quirks Modus gerendert.

RMC, das Problem liegt bei
document.getElementById("site").style.left = w;
und
document.getElementById("site").style.top = h;
es fehlt einfach die Angabe der Einheit, die ist wichtig! (und das TITLE Element im HEAD auch, sonst gibts kein W3C Zertifikat).


p.s.
Und deklarier die Variablen, insbesondere "Weite" und "Hoehe", dann ersparst Du dir auch das "window.Weite" und kannst gleich "Weite" nutzen.