Javascript mag mein Css nicht

BMo

Mitglied
Hallo ich habe ein kleines Problem:

Ich habe 2 Frames mainFrameleft und mainFrame (rechts).

Linkes Frame:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Titel</title>
<style type="text/css">
<!--
	@import url("ecken.css");
	body {
		background-color: #553322;
	}
-->
</style>
<script type="text/javascript" src="effects.js"></script>
</head>
<body id="body">
<script language="JavaScript">
<!--
	baueEcken(1,2,3,4);
//-->
</script> 
...

im linken Frame sind mehrere Ebenen, die mit folgendem Script per
do-while erscheinen:

baueEcken(zahl1,zahl2,zahl3,zahl4)

HTML:
parent.frames['mainFrameleft'].document.write('<div id="Layer'+zahl1+'" style=" left:0px; top:'+top+'px; "></div>');
parent.frames['mainFrameleft'].document.write('<div id="Layer'+zahl2+'" style=" left:50px; top:'+top+'px; "></div>');
parent.frames['mainFrameleft'].document.write('<div id="Layer'+zahl3+'" style=" left:100px; top:'+top+'px; "></div>');
parent.frames['mainFrameleft'].document.write('<div id="Layer'+zahl4+'" style=" left:150px; top:'+top+'px; "></div>');

top+=50;

Beim ersten mal klappt das wunderbar.

Wenn ich baueEcken() aber erneut über das RechteFrame aufrufen will, mit anderen (zahl1,zahl2,zahl3,zahl4)
geht das ganze nicht mehr.
Es wird nur eine weiße Seite angezeigt....

Ich denke, dass es daran liegt, dass meine Seite irgendwie das Stylesheet verloren hat...

Grüße BMo
 
Zuletzt bearbeitet:
Document.write() - Css

Ich glaub mein Titel ist sehr schlecht gewält,
helft mir aber doch bitte trotzdem!
 
Es ist nicht nur dein CSS weg, es ist alles weg, was vorher in dem Dokument stand.
Grund: wenn du write() während des Einlesens des Dokumentes ausführst, wird der entsprechende Code an der Stelle ins Dokument geschrieben, wo das Skript steht(z.B. im ersten Bsp. direkt im Anschluss an den öffnenden <body>).

Führst du write() nach dem Laden des Dokumentes auf, überschreibst du damit den kompletten Dokumentinhalt...er besteht dann nur noch aus dem, was write() hineinschreibt.

Lösung: ändere die innerHTML-Eigenschaft eines bestimmten Seitenelementes, oder hänge einen neu erzeugten Knoten in das Dokument ein.
 
Juhu, vielen Dank, ich habe jetzt Zeilen eingefügt und deren Inhalt mit dem InnerHTML Tag verändert. Sehr schön, geht wunderbar!
 
Zurück