attribute auslesen
neuling
- javascript
Hallo,
ich habe mal wieder ein problem mit dem ie.
auf einer seite habe ich zwei tabellen die eine feste breite und eine dynamische höhe haben, je nach eintragslänge.
damit die zweite tabelle unter der ersten kommt, möchte ich die höhe der ersten tabelle auslesen um den wert "top" der zweiten tabelle setzten zu können.
es funktioniert mal wieder alles im ff und im opera. doch der ie kann keine höhe auslesen die nicht von vornherein festgelegt ist. beim auslesen der höhe kommt "auto" und nicht die aktuelle höhenangabe. wie kann ich auch im ie an die höhe der ersten tabelle gelangen?
der neuling
Hallo,
damit die zweite tabelle unter der ersten kommt, möchte ich die höhe der ersten tabelle auslesen um den wert "top" der zweiten tabelle setzten zu können.
Wieso nimmst du nicht position:static und lässt die Elemente normal untereinander fließen? ;)
es funktioniert mal wieder alles im ff und im opera. doch der ie kann keine höhe auslesen die nicht von vornherein festgelegt ist.
Das können andere Browser auch nicht über .style.height, sondern nur über getComputedStyle.
beim auslesen der höhe kommt "auto" und nicht die aktuelle höhenangabe. wie kann ich auch im ie an die höhe der ersten tabelle gelangen?
http://de.selfhtml.org/javascript/objekte/all.htm#offset_height@title=offsetHeight
Mathias
Hi Mathias,
also ich hab die Attribute mit getCS() ausgelesen und wie gesagt der ie bringt statt einer "zahl_px" eben "auto", wobei der ff und opera eine zahl_px liefern.
trotzdem danke und ich werds mal mit position:static versuchen.
neuling
Hallo,
also ich hab die Attribute mit getCS() ausgelesen und wie gesagt der ie bringt statt einer "zahl_px" eben "auto", wobei der ff und opera eine zahl_px liefern.
Und wie sieht deine getCS aus? Unterstützt sie den IE?
Eigentlich reicht offsetHeight für alle Browser aus.
Mathias
Hallo,
sorry dass ich mich erst jetzt melde.
Und wie sieht deine getCS aus? Unterstützt sie den IE?
Sollte auch für den ie geeignet sein:
function getCS(objid,prop) {
var obj, propval;
if (document.documentElement && document.defaultView) {//--> funktioniert nur nicht beim IE
obj=document.getElementById(objid);
propval=document.defaultView.getComputedStyle(obj,"").getPropertyValue(prop);
return propval;
}
else {//--> funktioniert nur für den IE
if(document.documentElement.currentStyle) {
obj=document.getElementById(objid);
propval=obj.currentStyle[prop];
return propval;
} else alert("Ihr Browser unterstützt diese W3C-Dom Methode nicht und auch keine IE-Technik");
}
}
Eigentlich reicht offsetHeight für alle Browser aus.
Dann werd ich das auch mal in betracht ziehen. mein groll gegen den ie wächst und wächst...
neuling
Hallo neuling,
function getCS(objid,prop) {
var obj, propval;
if (document.documentElement && document.defaultView) {//--> funktioniert nur nicht beim IE
obj=document.getElementById(objid);
propval=document.defaultView.getComputedStyle(obj,"").getPropertyValue(prop);
return propval;
}
else {//--> funktioniert nur für den IE
if(document.documentElement.currentStyle) {
obj=document.getElementById(objid);
propval=obj.currentStyle[prop];
return propval;
} else alert("Ihr Browser unterstützt diese W3C-Dom Methode nicht und auch keine IE-Technik");
}
}
Das sollte eher so aussehen:
function getCS(objid,prop) {
var obj, propval;
if (document.documentElement && document.defaultView) {//--> funktioniert nur nicht beim IE
obj=document.getElementById(objid);
propval=document.defaultView.getComputedStyle(obj,"").getPropertyValue(prop);
return propval;
}
else if(document.documentElement.currentStyle) {//--> funktioniert nur für den IE
obj=document.getElementById(objid);
propval=obj.currentStyle[prop];
return propval;
}
else alert("Ihr Browser unterstützt diese W3C-Dom Methode nicht und auch keine IE-Technik");
}
}
return propval; könnte auch noch zusammengefasst werden.
Erinnert mich von der Namensgebung her sowie inhaltlich auch sehr an dies und das.
Grüße,
Thomas