Til S.: Pixelbreite eines Textes dynamisch ermitteln

Beitrag lesen

Hi Ronald.
Ich weiss nicht wieso die Leute immer so vorschnell behaupten, mit dem Netscape würde irgendwas nicht funktionieren. Wahrscheinlich zu faul sich damit zu beschäftigen.
Ich habs so gelöst: vor und nach dem Text kommen transparente gifs und deren position wird bestimmt. That's it !

<html>
<head>

<script language="javascript1.2">
<!--
function getLeft(Holder)
{
xPos=Holder.offsetLeft
tempEl=Holder.offsetParent
while(tempEl != null) {xPos +=tempEl.offsetLeft;tempEl=tempEl.offsetParent}
return xPos
}

function checkLeft(ref_name)
{
reference=document.images[ref_name]
Pos = (document.layers) ? reference.x : getLeft(reference);
return Pos;
}

function laenge()
{
laenge=checkLeft('endpos1')-checkLeft('startpos1');
alert(laenge-1);
}
//-->
</script>

</head>

<body bgcolor="gold" text="000000">

<img src='img/nix.gif' border=0 width=1 height=1 ID='startpos1' name='startpos1'><font style="font-size:42px;">Der Text</font><img src='img/nix.gif' border=0 width=1 height=1 ID='endpos1' name='endpos1'><br>

<br><br><br>
<a href="javascript:laenge()">Länge ermitteln</a><br>

</body>
</html>

Zwei PS: erstens werden die gifs nicht immer ganz an den Text gerückt, man muss also sich spielen oder haendisch korrigieren, damits wirklich aufs pixel genau ist. Bei obiger Lösung stimmts bei Netscape um etwa zwei pixel nicht.

Zweitens: die Ermittlung der Position eines Bildes stammt nicht von mir, sondern von Dan Steinman, der mit The Dynamic Duo - Cross-Browser DHTML ein grossartiges Tutorium geschrieben hat: http://www.dansteinman.com/dynduo/

Liebe Gruesse, Til.