Avatar billede andreas13_fam Nybegynder
18. marts 2009 - 21:30 Der er 15 kommentarer og
1 løsning

document.getElementById - problem

Problemet opstår her: C:\Users\Andreas Madsen\Documents\HTML\Net Kogeren\billede.html

loading.gif skulle meget gerne stå i midten, til det formål har jeg denne java script: http://www.netkogeren.a-mweb.dk/MyBox/mybox.js
Sammen med denne CSS fil: http://www.netkogeren.a-mweb.dk/MyBox/mybox.js

Som så "redigere" den nederste del af html filen.

Det der ikke virker er at jeg i IE 8 for beskeden:
--copy--
Message: Object required
Line: 4
Char: 4
Code: 0
URI: http://www.netkogeren.a-mweb.dk/MyBox/mybox.js


Mens jeg i firefox for beskeden:
--copy--
Fejl: document.getElementById("MyboxLoading") is null
Kildefil: http://www.netkogeren.a-mweb.dk/MyBox/mybox.js
Linje: 12
Avatar billede erikjacobsen Ekspert
18. marts 2009 - 21:32 #1
Har du et element, der hedder "MyboxLoading" som id? Et link til siden vil være fint.
Avatar billede Slettet bruger
18. marts 2009 - 21:39 #2
Offtopic: engang vil du forstå hvor underholdende det er, at du henviser til en lokal fil :)
Avatar billede erikjacobsen Ekspert
18. marts 2009 - 21:40 #3
Jeg kan måske gætte linket.... samme problem som i: http://www.eksperten.dk/spm/868522

Det med IE8 ved jeg ikke - har ingen erfaring med den. Men det oldgamle document.all hack virker måske kun op til IE7. IE8 er efter rygterne blevet noget med standard-overholdende.
Avatar billede andreas13_fam Nybegynder
18. marts 2009 - 21:49 #4
arr hack min PC og i har hvad i skal bruge, men ja i kunne også bare se her: http://www.netkogeren.a-mweb.dk/billede.html
Avatar billede andreas13_fam Nybegynder
18. marts 2009 - 21:53 #5
PS: for hvilke browser er det påkrævet med document.all hacket
Avatar billede erikjacobsen Ekspert
18. marts 2009 - 21:57 #6
Jeg ved forfærdelig lidt om IE. Men jeg tror du skal finde en måde at identificere en IE8 på. Den siger åbenbart ja til document.all, men nej til måden at aflæse højde og bredde på. Jeg er sikker på Google vil være din ven...
Avatar billede andreas13_fam Nybegynder
18. marts 2009 - 22:01 #7
Jeg har nu en måde at se om det er IE8 via PHP.
Men det problem er nu ikke det største ;)
Avatar billede andreas13_fam Nybegynder
18. marts 2009 - 22:06 #8
Ja fjerner jeg document.all så er den også enig med firefox.

--copy--
Message: Object required
Line: 12
Char: 2
Code: 0
URI: http://www.netkogeren.a-mweb.dk/MyBox/mybox.js
Avatar billede erikjacobsen Ekspert
18. marts 2009 - 22:18 #9
Du så mit link til spm 868522 ?
Avatar billede sn0wflake Nybegynder
18. marts 2009 - 22:33 #10
<script type="text/javascript" src="billede_files/mybox.js"></script>

...skal flyttes ned til lige før </body></html> delen.
Avatar billede andreas13_fam Nybegynder
18. marts 2009 - 22:43 #11
@erik jeg har kun læst noget af det, og jeg tror ikke at det er mit problem.
@sn0w jeg kan ikke lige teste det nu men hvad er den tekniske grund til det, jeg plejer nemlig ikke at skulle gøre det normalt når jeg bruger doc...GetElById
Avatar billede sn0wflake Nybegynder
18. marts 2009 - 22:50 #12
JavaScriptet blev afviklet inden

<div id="MyboxLoading" style="display: block; top: 10px;">

...blev læst af browseren fordi den står længere nede på siden. JavaScript kan ikke "se" fremad :)
Avatar billede erikjacobsen Ekspert
18. marts 2009 - 22:52 #13
Bemærk at ingen af de kloge personer på mit link bruger sn0wflakes metode. Den virker formentlig, men reelt kan man ikke være sikker på at elementer på siden findes, før onload-eventen udløses.
Avatar billede sn0wflake Nybegynder
18. marts 2009 - 23:00 #14
Kan se den ikke fungerer i Exploder, sikkert på grund af de ting der er udkommenteret i mybox.js filen. Testede i FireFox og der virkede det.
Avatar billede andreas13_fam Nybegynder
19. marts 2009 - 13:55 #15
Det virker med:
function mybox()
{
    if (document.all && document.body.clientWidth && document.body.clientHeight) {
      browserwidth  = document.body.clientWidth;
      browserheight = document.body.clientHeight;               
    } else {
      browserwidth  = window.innerWidth;
      browserheight = window.innerHeight;     
    }
    loadingLeft = ((browserwidth / 2) - (208 / 2));
    loadingTop = ((browserheight / 2) - (13 / 2));
    document.getElementById('MyboxLoading').style.left = loadingLeft + 'px';
    document.getElementById('MyboxLoading').style.top = loadingTop + 'px';
}

og

<body onload="mybox();">

Faktum er bare at det skal være en funktion der aktiveres når man klikker på et billede, så der vil <div>'en nok være loadet :D

Jeg har givet point fordi i gjorde mig opmærksom på at det var et indlæsnings spørgsmål.
Avatar billede sn0wflake Nybegynder
19. marts 2009 - 16:24 #16
Den var også lidt tricky. Tog mig 5-10 minutter at debugge :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester