mit javascript in eine tabellenzelle schreiben
Der Schwabe
- javascript
hallo zusammen
ich versuche mit javascript in eine tabellenzelle zu schreiben
und einem bild eine bestimmte höhe, abhängig von der fensterhöhe, zu geben. wenn ich das bild ohne variable höhe in die tabelle schreibe
wird die seite richtig angezeigt, aber sobald ich es mit der variablen höhe (h siehe code) versuche nicht.
ich weiss nicht mehr weiter :-(
kann mir bitte jamand helfen.
hier mein code:
<head>
<script language="JavaScript" type="text/javascript">
<!--
var ie = document.all ? true : false;
var ns = document.layers ? true : false;
var h1, h, minus=200;
function schreiben()
{
if (ie)
document.write('<div id="mlay"><img src="1pixel.gif" height="'+h+'" width="10" border="1"></div>');
else if (ns)
document.write('<layer name="mlay"><img src="1pixel.gif" height="'+h+'" width="10" border="1"></layer>');
}
function start()
{
if(ns)
{
h1=innerHeight;
h = h1 - minus;
schreiben(h);
}
else if(ie)
{
h1=document.body.offsetHeight;
h = h1 - minus;
schreiben(h);
}
}
//-->
</script>
</head>
<body onload="start()">
<br><br><br>
<table border="1" cellspacing="0" cellpadding="0" width="100%" bgcolor=#9933CC>
<tr>
<td width="20%"> </td>
<td width="80%">
<script language="JavaScript" type="text/javascript">
<!--
schreiben();
//-->
</script>
</td>
</tr>
</table>
</body>
</html>
vielen dank im voraus
einen schönen Tag
mfg Der Schwabe
Hi,
wieso wird die Funktione schreiben 2 mal ausgeführt?
Einmal über schreiben() im Body und einmal über den onload-Umweg
mit schreiben(h).
Wenn du mit schreiben(h) den Wert h an die Funktion übergeben
willst, muss die Funktion natürlich so anfangen
function schreiben(h)
und nicht nur function schreiben()
Die Anordnung von schreiben() im body und von onload ist ausserdem
recht kritisch, da du nicht genau nachvollziehen kannst, was zuerst geladen/ausgeführt wird.
Normal wird onload erst ausgeführt, wenn ALLES geladen ist, also auch schon der body, in dem schreiben() aufgerufen wird. Da zu dem Zeitpunkt, zu dem schreiben() ausgeführt wird, aber noch nicht start() ausgeführt wurde, ist die Variable h noch undefined.
Ich würde den Inhalt der Funktion start() an den Anfang der Funktion schreiben() stellen.
Viele Grüße
Jörg