mit getElementById(xxx).style.left Wert ausgeben
max
- javascript
Hallo
Ich habe folgendes Problem, ich will mir per getElementById(xxx).style.left die linke Position einer Tabelle oder eines Divs ausgeben lasse. Leider funktioniert das im Netscape nicht.
Es ist aber kein Probelm per
document.getElementById(str3000).style.left = document.getElementById(str2000).style.left;
str3000 die position von str2000 zuzuweisen.
Wie kann ich die Zahl dafür ausgeben lassen?
schon mal danke im voraus
max
Hi,
[...] getElementById(xxx).style.left die linke Position einer Tabelle oder eines Divs ausgeben lasse. Leider funktioniert das im Netscape nicht.
Position eines positionierten Divs:
http://www.wendenburg.de/test/divPos.html
Beachte: wenn Doctype gesetzt ist, verlangen Dom-Browser eine Einheit, bzw liefern einen Wert-Einheitstring zurueck, der mit parseInt() in eine Ziffer konvertiert werden kann.
Die Offsets von nicht positioniertem Html findest Du, indem die offsets aller Elternelemente addiert werden, siehe die Funktion findPos z. B auf dieser Seite: http://www.wendenburg.net
Bin mir nicht sicher, ob das fuer NC 4x mit Tabellen geht, sonst ein Referenz-Gif verwenden.
Gruesse Joachim
Danke für den Tip, jedoch bekomm ich mit
var LeftPosition = parseInt(document.getElementById(BorderTable).style.left)
nur ein NaN, und somit einen Fehler :(
Gibts noch etwas anderes oder mache ich noch andere Fehler?
mfg
max
Hi,
var LeftPosition = parseInt(document.getElementById(BorderTable).style.left)
nur ein NaN, und somit einen Fehler :(
Was ist BorderTable? Eine Variable?
Falls nicht, fehlen die Anführungszeichen drumherum.
Grüße Joachim
Hi
BorderTable ist die Id von der Tabelle.
Sorry das ich die Anführungszeichen vergessen habe, nützt aber auch nichts.
Habe jetzt bereits versucht über ein <div> tag zu etwas zu kommen, einem gif und tabelle und tabellenzelle.
Leider ist bis jetzt noch immer nichts heraußen.
Das ist jetzt mal die Syntax für Netscape 6
} else if(document.getElementById) {
var LeftPosition = document.getElementById("P3").style.left;
var TopPosition = document.getElementById("P3").style.top;
}
das ganze in nem alert ausgegeben liefert leider immer nur ein NaN :(
Ich weiß echt nicht weiter, aber danke für deine hilfe und die Geduld ;)
mfg
max
Hab jetzt mal eine Testdatei erstellt, mit der geht es komischerweise, aber in meiner gewünschten datei nicht.
Is es möglich das Netscape das irgendwie nicht mag wenn in der Seite noch diverse Datenbankaufrüfe und Window Forms (oder wie genau sie heißen) enthalten sind?
mfg
max
Hallo max,
} else if(document.getElementById) {
var LeftPosition = document.getElementById("P3").style.left;
var TopPosition = document.getElementById("P3").style.top;
}das ganze in nem alert ausgegeben liefert leider immer nur ein NaN :(
Was ist hier "das ganze"?
Was ergibt alert(document.getElementById("P3").style.left); ?
Die left/top-Werte stehen nur dann zur Verfügung, wenn sie vorher angegeben wurden. Ansonsten kannst du sie über offsetLeft/offsetTop herausbekommen.
Versuche mal alert(document.getElementById("P3").offsetLeft);
Hierbei wird der Abstand zum Elternelement ausgegeben. Wenn "P3" also beispielsweise noch in einem Div steckt, brauchst du eine rekursive Funktion, welche die Abstände der Elternelemente so lange addiert, bis sie auf der höchsten Ebene angekommen ist. Siehe http://forum.de.selfhtml.org/archiv/2002/6/14102/#m78284.
Grüße, Stefan
Hi
also mit das ganze meinte ich jeweils LeftPosition und TopPosition. Alles gibt einen Alert aus.
Aber egal, dank deiner Hilfe klappt es nun endlich im Netscape 6
MUCHOS GRACIAS SENOR
du hast mir einige überstunden erspart ;)
jetzt fehlt mir das ganze nur noch für Netscape 4 und ich habs endlich geschafft :)
mfg
max
und so dumm wie ich bin vergess ich wieder was und schreib nur blödsinn
ich meinte natürlich: der Alert mit Left oder TopPosition gibt/gab immer NaN oder auch manchmal gar nichts zurück.
aber ist ja Problem der vergangenheit.
mfg
max
PS: und nochmals danke :D