/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Finde element absolutte pos. i IE6
Fra : Christian Hansen


Dato : 07-04-02 00:02

Hej

Jeg har et problem med IE6, når jeg bruger doctype erklæring i starten
af mine dokumenter ( og det har jeg tænkt mig at blive ved med.

Jeg vil gerne kende et bestemt elements absolutte position i
html-dokumentet, x og y koordinaterne i pixels. til det bruger jeg koden:

x = document.all[id].offsetLeft;
y = document.all[id].offsetTop;

på IE platformen.

Det fungerer fint i IE5 og IE5.5, men i IE6 får jeg i stedet den
absolutte position i forhold til dokumentets marginer. Derfor kan jeg
ikke placere et andet element korrekt i forhold til det første element.
Mit spørgsmål er så, om det enten er muligt at

-finde et elements absolutte position

eller

-finde værdierne for top og venstre-margin, så disse kan lægges til mine
værdier for offsetLeft og offsetTop.

Min alternative løsning er at bede mine brugere at definere en top og
leftmargin på forhånd i et stylesheet og ligeledes i scriptet , men det
er ikke nogen særlig elegant løsning.

Håber at der sidder en med det gode svar.

MVH Christian


 
 
Jonas Koch Bentzen (07-04-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 07-04-02 09:44

Christian Hansen skrev:

> Jeg har et problem med IE6, når jeg bruger doctype erklæring i starten
> af mine dokumenter ( og det har jeg tænkt mig at blive ved med.
>
> Jeg vil gerne kende et bestemt elements absolutte position i
> html-dokumentet, x og y koordinaterne i pixels. til det bruger jeg
> koden:
>
> x = document.all[id].offsetLeft;

Du bør bruge objek.style i stedet for objekt.all, hvis det skal være
standardkode. Hvis du f.eks. har en <div id='test'>, så skriver du

x = document.getElementById("test").style.left

--
Jonas Koch Bentzen

PHP-databaseklasse til PostgreSQL og MySQL:
http://understroem.dk/fasdab/

Stig Nygaard (07-04-2002)
Kommentar
Fra : Stig Nygaard


Dato : 07-04-02 13:13

Hej


Jonas Koch Bentzen wrote:
>>Jeg har et problem med IE6, når jeg bruger doctype erklæring i starten
>>af mine dokumenter ( og det har jeg tænkt mig at blive ved med.

>>Jeg vil gerne kende et bestemt elements absolutte position i
>>html-dokumentet, x og y koordinaterne i pixels. til det bruger jeg
>>koden:
>>x = document.all[id].offsetLeft;

> Du bør bruge objek.style i stedet for objekt.all, hvis det skal være
> standardkode. Hvis du f.eks. har en <div id='test'>, så skriver du

> x = document.getElementById("test").style.left

Enig i at man for crossbrowser kompatibilitet bør bruge
document.getElementById() fremfor document.all[], men style.left giver
kun den ønskede værdi hvis elementet er placeret med en style eller ved
at angive placeringen direkte i style.left. Kan man basere sig på
style.left, så er det bedst, men andre browsere understøtter også
offsetLeft eller tilsvarende proporties, så det er stadig muligt at få
det til at virke i flere browsere med lidt arbejde.
Iøvrigt kan man ændre sin !doctype til en som ikke putter IE6 i
"strict-mode", så tror jeg den opfører sig som tidligere IE-udgaver.
Prøv f.eks.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


Mvh. Stig
stig@rockland.dk
* Bedre (D)HTML ?! --> http://www.rockland.dk/stig/upghtml.html *


Christian Hansen (07-04-2002)
Kommentar
Fra : Christian Hansen


Dato : 07-04-02 19:18

Jonas Koch Bentzen wrote:


> Du bør bruge objek.style i stedet for objekt.all, hvis det skal være
> standardkode. Hvis du f.eks. har en <div id='test'>, så skriver du
>
> x = document.getElementById("test").style.left
>
>


jeg bruger skam også standardkode, men det virker ikke i IE5 og 5,5.
Derfor har jeg et tjek, der ser efter, om object.all er defineret. Hvis
det er tilfældet benyttes det, ellers benyttes object.style. Men IE6
skal åbentbart med i sidste kategori, selvom object.all også er
defineret i denne.

Tak for jeres svar.

MVH Christian




Stig Nygaard (07-04-2002)
Kommentar
Fra : Stig Nygaard


Dato : 07-04-02 21:12

Hej Christian


Christian Hansen wrote:
> jeg bruger skam også standardkode, men det virker ikke i IE5 og 5,5.

document.getElementById() virker fint i IE5 og IE55. Det er kun IE4 du
absolut skal bruge document.all[] for at understøtte.


Mch. Stig
stig@rockland.dk
* Bedre (D)HTML ?! --> http://www.rockland.dk/stig/upghtml.html *


Christian Hansen (07-04-2002)
Kommentar
Fra : Christian Hansen


Dato : 07-04-02 23:17

Stig Nygaard wrote:

> Hej Christian
>
>
> Christian Hansen wrote:
>
>> jeg bruger skam også standardkode, men det virker ikke i IE5 og 5,5.
>
>
> document.getElementById() virker fint i IE5 og IE55. Det er kun IE4 du
> absolut skal bruge document.all[] for at understøtte.


Det har jeg jo så ikke testet, da IE5 og IE5.5 selvfølgelig også
understøtter document.all og derfor eksekvere denne i mit if statement.

Men nu, da jeg ved det, vil jeg da nøjes med at tjekke for IE4 og lade
den bruge document.all og så lade resten bruge document.getElementByID.

Tak for hjælpen

MVH Christian


Jonas Koch Bentzen (07-04-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 07-04-02 21:16

Christian Hansen skrev:
>
> jeg bruger skam også standardkode

objekt.all er ikke standardkode.

--
Jonas Koch Bentzen

PHP-databaseklasse til PostgreSQL og MySQL:
http://understroem.dk/fasdab/

Christian Hansen (07-04-2002)
Kommentar
Fra : Christian Hansen


Dato : 07-04-02 23:15

Jonas Koch Bentzen wrote:

> Christian Hansen skrev:
>
>>jeg bruger skam også standardkode
>>
>
> objekt.all er ikke standardkode.



Det ved jeg godt.

MVH Christian


Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste