JavaScript ungültiges Argument
Kristian
- javascript
Guten Morgen liebe Gemeinde ;o)
ich habe eine HTML Datei mit zwei Layern erstellt, die sich je nach Größe eines dritten Layers in der Höhe anpassen sollen. Das soll über JavaScript geregelt werden. Im Firefox funktioniert das folgende Script auch wunderbar... nur im IE 6 gibt er folgendes aus:
Zeile: 18
Zeichen: 2
Fehler: Ungültiges Argument.
Code: 0
hier das JavaScript:
<!--
function dheight() {
var t1=(window.innerHeight);
var t2=(document.getElementById('content').offsetHeight+265);
if (t1 <= t2) {
var h1=(document.getElementById('content').offsetHeight+121)+"px";
var h2=(document.getElementById('content').offsetHeight+265)+"px";
//alert ("T1 < T2");
}
if (t1 >= t2) {
var h1=(window.innerHeight-144)+"px";
var h2=(window.innerHeight)+"px";
//alert ("T1 > T2");
}
document.getElementById('menue').style.height=(h1);
document.getElementById('teaserbg').style.height=(h2);
}
//-->
Was genau ist der Fehler und wie behebe ich ihn? Danke schonmal im voraus.
Hallo Kristian,
da ich in Deinem Script die Zeile 18 nicht finde, kann ich Dir nur zwei Tipps geben:
Gruß, Jürgen
Hallo Jürgen,
ich habe mir die Werte t1 und t2 per alert angesehen und festgestellt, das FF alles perfekt umsetzt nur der IE nicht und ich hab keine Ahnung warum...
Hallo Kristian
ich habe eine HTML Datei mit zwei Layern erstellt, die sich je nach Größe eines dritten Layers in der Höhe anpassen sollen.
Du meinst aber nicht wirklich layer - oder? Die funktionieren laut SELFHTML nur für Netscape 4 ;=)
Es wäre sehr nett, wenn du uns auch noch den HTML-Teil zeigen könntest, wo das Script aufgerufen wird. Kann sein, dass dir inzwischen - während ich das schreibe - die javascript Könner schon den Fehler gefunden haben, aber für mich sind die Voraussetzungen noch nicht ausreichend. In einem schnell zusammengestrickten Testcase kommt bei mir zwar auch die IE Fehlermeldung, aber beim FF passiert gar nichts (nichtmal ne Meldung in der Javascript Konsole)
Liebe Grüße
mbr
Edit: eines kann ich dir jedenfalls schon mal sagen:
Wenn du direkt nach
var t1=window.innerHeight;
ein
alert(t1);
einfügst wirst du staunen...
Hallo mbr,
danke erstmal für deine Antwort. Gebe ich nach deiner Angabe:
var t1=window.innerHeight;
alert(t1)
ein, zeigt
IE = undefined
FF = die exakte Angabe/ Höhe von innerHeight (z.B. 636) an
ist schon eigenartig und ich kann mir das nicht erklären...
anbei der HTML-Teil:
<link href="index.css" rel="stylesheet" type="text/css">
<script language="javascript" type="text/javascript" src="lib/hight.js"></script>
</head>
<body onLoad="dheight()">
<div id="menue">link1 .... link2.... link3 </div>
<div id="content">some text..... </div>
<div id="teaserbg"></div>
P.S. ich meine natürlich DIV's ;o)
Gruß Kristian
hi,
var t1=window.innerHeight;
alert(t1)
IE = undefined
FF = die exakte Angabe/ Höhe von innerHeight (z.B. 636) anist schon eigenartig und ich kann mir das nicht erklären...
Die Beschreibung zu innerHeight erklärt's dir gerne.
gruß,
wahsaga
Danke, wahsaga...
das wusste ich noch nicht... hilft mir aber weiter ;o)
Hello out there!
<!--
Was haben HTML-Kommentarzeichen im JavaScript verloren?
if (t1 <= t2) {
var h1=(document.getElementById('content').offsetHeight+121)+"px";
var h2=(document.getElementById('content').offsetHeight+265)+"px";
//alert ("T1 < T2");
}
if (t1 >= t2) {
var h1=(window.innerHeight-144)+"px";
var h2=(window.innerHeight)+"px";
//alert ("T1 > T2");
}
»»
Was genau ist der Fehler […]?
Nicht _der_ Fehler, aber: Im Falle t1 == t2 sollen beide 'if'-Zweige ausgeführt werden? Nicht nötig.
Verwende also komplementäre Bedingungen. Und dann ist die zweite Abfrage gar nicht nötig, dafür gibt es 'else'.
See ya up the road,
Gunnar
Hallo Gunnar,
danke für deine Antwort und ich geb dir Recht, HTML-Kommentarzeichen haben nichts im JavaScript verloren...
mit dem Fall t1 == t2 hast auch Recht werde ich ändern...
danke.
Danke erstmal allen die geantwortet haben....
der "Fehler" liegt darin, das der IE den Befehl windows.innerHeight nicht kennt. (aber alle anderen Browser und das W3C)
s. http://forum.de.selfhtml.org/archiv/2001/6/t25365/
aber bisher konnte ich noch keine Alternative finden... kennt jemand eine? Solange werde ich erstmal googeln und wenn ich was gefunden habe hier auch posten.
Danke.
Hallo Krisrtian!
der "Fehler" liegt darin, das der IE den Befehl windows.innerHeight nicht kennt. (aber alle anderen Browser und das W3C)
Ja, der IE braucht extra-Würstchen. Wie wär's für den IE mit
document.documentElement.clientHeight?
Etwas suchen in SELFHTML hätte es Dir auch verraten: http://de.selfhtml.org/javascript/objekte/window.htm#inner_height. Unbedingt auch dem Link zu quirksmode.org folgen und die Beispiele testen!
Interessehalber kannst Du dir auch die Scripte im Thread: https://forum.selfhtml.org/?t=137765&m=894879 anschauen. Da muss ich auch IE und den moderneren Browser trennen ;)
Viele Grüße aus Frankfurt/Main,
Patrick
Hallo Patrick,
danke für deine Antwort, hab alles gefunden ;o)