JS : Firefox und IE 6.0

AlexD1979

Erfahrenes Mitglied
Hi,
Ich habe eine Funktion, die mir die Größe des Frames berechnet. Leider funktioniert das nicht richtig, der Mittlere Frame taucht unter dem unteren Frame durch und ich kann den Scrollbalken rechts über den Browser hinausschieben.
Es geht dabei um die Funktion onResize(). In Firefox bekomme ich nicht mal eine Scrollleiste angezeigt. Habe ich irgendwas verwendet, was nicht FF konform ist ?
Code:
function getStyleObj(divname){
	if (document.all)
		{
		return document.all[divname];
		} 
	else 
		{
		return document.getElementsByName(divname)[0];
		}
};
function getWindowHeight() {
	var windowHeight=0;
	if (typeof(window.innerHeight)=='number') {
		windowHeight=window.innerHeight;
	} else {
	if (document.documentElement&&document.documentElement.clientHeight) {
			windowHeight=document.documentElement.clientHeight;
		} else {
			if (document.body&&document.body.clientHeight) {
				windowHeight=document.body.clientHeight;
			}
		}
	}
return windowHeight;
}


function getWindowWidth()
			{
			    if( window.innerWidth )
			        return innerWidth;
			    // Internet Explorer
			    return document.body.offsetWidth;
			}
function onResize() {
	f = getStyleObj('resize_id');
	if (f){
		f.style.position = 'relative';
		f.style.top = '0Px';		
		f.style.left = '0Px';
		f.style.height = '75%';
		f.style.width = '100%';
		f.style.overflow = 'auto';
		if (document.all) {
			f2 = getStyleObj('inset');			
			if (f2)h = getWindowHeight() - f2.offsetTop - f.style.border;
			if (!f2)h = getWindowHeight() - f.style.border - 175;
		} else {
			h = self.innerHeight - f.offsetTop - f.style.border
		};
		
		h = h - 16;
		if( h > 0 ){
			f.style.height = h+'Px';
		}
	}
}

Der zugehörige Style, der dann aufgerufen wird :
Code:
.resize_id 	{
			background-color:#E6E6E6;
			font-family:Geneva, Arial, Helvetica, sans-serif;
			font-size:12px;
			color:black;
			border-width:1Px;
			border-style:solid;
			border-color:gray;
			overflow:auto;
			}

Und eingebunden wird das ganze dann mit einem div
Code:
<cfif #is_browser_ie#>  <!--- Variable die prüft, ob der Brwoser ein IE ist.. wenn ja dann siehe unten--->	
	<div id="resize_id" style="<cfif #is_browser_ie#>position:relative;</cfif>top:0;left:0;height:100%;overflow:auto">
 
Zuletzt bearbeitet:
Das Problem mit dem "unterherschieben" in einem Frame habe ich behoben nur ich finde nicht das Problem für keinen vertikalen Scrollbalken in Firefox. Im IE klappt es.
Bei Firefox geht er in der Funktion getStyleObj schon in den Else-Block, aber ein JS Alert sagt mir für return document.getElementsByName(divname)[0]; ein undefinied. Was ist daran nicht richtig

Kann mir da einer einen Tipp geben?
 
Ein <div> hat lt. HTML kein name-Attribut, somit kannst du es in weniger fehlertoleranten Browsern wie Mozilla auch nicht über die Methode getElementsByName() ansprechen.
 

Neue Beiträge

Zurück