outerwidth des .window aus frame heraus abfragen
raphael
- javascript
Hallo,
ich habe ein Script geschrieben, das entsprechend der Auflösung des Benutzers eine bestimmte Seite laden soll (inhalt.scr="umleitung.htm" in der Index.htm also Frame[1]):
Umleitung.htm:
<html>
<head>
<title>umleitung</title>
<script language="javascript">
<!--
function weiterleiten() {
if (document.all) {
if (window.screen.width<"700") {
parent.location.href="index640.htm";
parent.location.reload()
}
else if (window.screen.width<"900") {
parent.frames[1].location.href="treenav640.htm"
}
else {
parent.frames[1].location.href="treenav.htm"
}
}
else if (document.layers) {
if (window.outerwidth<"700") {
parent.location.href="index640.htm";
parent.location.reload()
}
else if (window.outerwidth<"900") {
parent.frames[1].location.href="treenav640.htm"
}
else {
parent.frames[1].location.href="treenav.htm"
}
}
}
//-->
</script>
</head>
<body onload="javascript:weiterleiten();">
</body>
</html>
Das Script funktioniert im IE einwandfrei, im NN wird immer der else Fall genommen.
Ich habe bereits ausprobiert:
1. " bei den if weggelassen
2. statt window.outerwidth window.width
3. zum testen: window.innerwidth
4. parent.window.outerwidth
5. main.window.outerwidth (main ist parent.name)
6. top.window.outerwidth
7. bei alert(3-6.outerwidth) gibt immer undefiniert zurück
Das ironische dabei ist, das ich ein Script benutze um das Browser-Fenster zu maximieren, das in IE und NN funktioniert, auch window.outerwidth benutzt, allerdings in der index.htm eingebettet ist.
Noch genauer kann ich das Problem nicht beschreiben. Wer will kann sich das Problem ja mal unter www.stuer.de anschauen. Das Problem unter IE 5.5 mit dem schwarzen Rahmen im Menü habe ich bereits geändert, dauert immer nur ein bißchen bis T-Online aktualisiert.
Und: Wenn mir da noch jemand weiterhelfen könnte:
Funktionieren Hover-Buttons unter NN 4.x nicht? Wenn doch, was habe ich dann falsch gemacht? (Habe auch schon probiert das a:hover in die <class> Definition von a aufzunehmen, das hat aber auch nicht geholfen.)
Vielen Dank im voraus,
Raphael
hi,
teste: alert(window.outerWidth);
(gross "W"!), aber bedenke: Browserfenstergroesse und Aufloesung haben nix miteinander gemein.
Besser: Fenstergroesse abfragen, so etwa:
// ein paar objecte/browser
var nc = !!(document.captureEvents && !document.documentElement);
var ie = !!document.all;
var ie4 = !!(!document.documentElement && document.all);
var dom = !!document.documentElement;
var nc6 = !!(dom && (!document.all));
// Groesse Browserfenster / Dokument
function winSize() {
if(ie) {
breit = document.body.clientWidth;
hoch = document.body.clientHeight;
}
if (nc || nc6) {
breit = self.innerWidth;
hoch = self.innerHeight;
}
}
hth
Gruesse Joachim
hi,
teste: alert(window.outerWidth);
(gross "W"!), aber bedenke: Browserfenstergroesse und Aufloesung haben nix miteinander gemein.
Besser: Fenstergroesse abfragen, so etwa:
// ein paar objecte/browser
var nc = !!(document.captureEvents && !document.documentElement);
var ie = !!document.all;
var ie4 = !!(!document.documentElement && document.all);
var dom = !!document.documentElement;
var nc6 = !!(dom && (!document.all));
// Groesse Browserfenster / Dokument
function winSize() {
if(ie) {
breit = document.body.clientWidth;
hoch = document.body.clientHeight;
}
if (nc || nc6) {
breit = self.innerWidth;
hoch = self.innerHeight;
}
}
hth
Gruesse Joachim
Danke,
das W wars schon, dummer Fehler (wahrscheinlich betriebsblind), kennst du vielleicht auch noch eine Antwort auf mein hover Problem?
Raphael