onresize und Firefox
stephan
- javascript
Ich habe ein Problem mit "onresize" unter Firefox.
Aufgerufen wird "onresize" in einem Objekt um die Grösse eines Div-Elementes zu ermitteln. Diese Grösse soll beim verändern der Seitegrösse an ein weiteres DIV übergeben werden, was auf Pixelwerte angewiesen ist.
Das Objekt wird von einer externen JS-Datei aufgerufen.
Mit dem IE funktioniert onresize ohne Probleme, Firefox ruft diese Funktion nur einmal beim laden der Seite auf. Danach tut sich nix mehr.
In dem Beispiel der Selfhtml-Bibliothek das gleiche Problem.
Nun habe ich etwas gegoogelt und ein Beispiel gefunden, das auch bei mir im Firefox funtioniert. Allerdings kann ich keinen Unterschied finden.
Ich habe schon an den HTML-Definitionen und Metatags rumgeschraubt, ohne Erfolg.
Modell:
Objekt
{
function do()
{
alert('done');
}
window.onresize = this.do();
}
ME = new Object();
Weis jemand etwas über Einschränkungen beim Einsatz von "onresize" im Firefox?
Danke
Stephan
Hi,
Objekt
ME = new Object();
k != c
cu,
Andreas
Objekt
ME = new Object();k != c
Was ist nicht was?
Was meinst du damit?
hi,
Objekt
ME = new Object();k != c
Was ist nicht was?
ein k ist kein c.
es sind beides buchstaben aus dem lateinischen alphabet, wie es hierzulande geläufig ist - aber eben _unterschiedliche_ buchstaben.
Was meinst du damit?
das war ein von andreas in bewegung gesetzter zaunpfahl.
vergleiche doch oben noch mal die schreibweisen von obje*t.
gruß,
wahsaga
Blindfisch, ich!
Aber das ist nicht das Problem, war ja nur eine Skizze.
Na gut, hier mal etwas Code:
///Auszug
function JS_SCROLLBAR()
{
this.index_x;
this.index_y;
this.target;
this.move;
this.init = init;
this.getRealNumber = getRealNumber;
this.dragPointer = dragPointer;
this.startDrag = startDrag;
this.stopDrag = stopDrag;
this.trace = trace;
this.scaleScrollbalken = scaleScrollbalken;
this.dragPointerIE = dragPointerIE;
this.ObjIndex = ObjControl.setObj(this);
}
///Diese Funktion soll bei "onresize" aufgerufen werden
function scaleScrollbalken()
{
alert('running');
}
//wird beim laden einer Seite in dem IFrame aufgerufen
//1. findet den Überlauf einer Seite herraus
//2. entscheided ob der Scrollbalken sichtbar sein muss
//3. passt die Grösse des Scrollbalken an den Überlauf des Dokuments an
//4. setzt die Scrollbalkenposition auf Null, also nach oben
function init(obj, scroller, balken)
{
--------------> window.onresize = this.scaleScrollbalken();
if(this.everSeen != 0 && this.everSeen != 1)
{
if(scroller.style.visibility == 'visible')
{
this.everSeen = 1;
}else{
this.everSeen = 0;
}
}
obj.scrollTo(0,100000);
if(obj.pageYOffset)
{
scroller.style.height = document.all.frame_1.offsetHeight;
this.index_x = obj.pageXOffset;
this.index_y = obj.pageYOffset;
}else{
scroller.style.height = obj.innerHeight;
this.index_y = obj.document.body.scrollTop;
this.index_x = obj.document.body.scrollLeft;
}
obj.scrollTo(0,0);
if(this.index_y == 0 && this.everSeen == 0)
{
scroller.style.visibility = 'hidden';
}else{
scroller.style.visibility = 'visible';
}
if(this.pointer)
{
this.pointer.style.top = 0;
}
tmpHeight = Number(this.getRealNumber(scroller.style.height));
if(navigator.appName == 'Netscape')
{
balken.style.height = (tmpHeight/100)*(tmpHeight/((tmpHeight+this.index_y)/100));
}else{
balken.style.height = (tmpHeight/100)*(tmpHeight/((tmpHeight+(this.index_y-328))/100));
}
}
Hi,
Objekt
ME = new Object();
k != c
Was ist nicht was?
Was meinst du damit?
Warum wohl hab ich genau die beiden Zeilen Deines Postings zitiert und nicht irgendwelche anderen?
cu,
Andreas