Avatar billede jacob_m Nybegynder
21. marts 2007 - 14:50 Der er 35 kommentarer og
1 løsning

Problemer med getElementById?

Hey..

Jeg har denne funktion som jeg bruger fra Flash til at ændre en iframe:

function vis_iframe(link){
document.getElementById('holder').src = link;
};

Den omtalte iframe ligger sådan i html´en..

<html>
....

<table>

<div id="main_div">
<iframe name="holder" id="holder" width="1px" height="1px" src="forside.php"  style="visibility:hidden" ></iframe>
</div>

</table>
</html>

- - - - - - - - - -

Mit problem er bare at jeg den ikke for fat i iframen og ændre indholdet !!.. Hvad gør jeg galt!?
Avatar billede thesurfer Nybegynder
21. marts 2007 - 15:16 #1
Brug

document.getElementById('holder').location.href = link;

eller

document.getElementById('holder').window.location.href = link;

Men window er nok overflødig..
Avatar billede roenving Novice
21. marts 2007 - 15:24 #2
>>strandløve

Nej, for du får fat i html-elementet iframe, ikke det window-objekt, der er indeni !-)
Avatar billede jacob_m Nybegynder
21. marts 2007 - 15:29 #3
>> Thesurfer: Ingen af af dem virker.. Der er simpelthent et eller andet med getElementById('holder') som ikke passer.. Det er som om den overhovedet ikke for fat i objectet.

skriver jeg alert( document.getElementById('holder') ); står der nemlig bare NULL !
Avatar billede roenving Novice
21. marts 2007 - 15:44 #4
Hvad skriver den så, hvis du prøver at alerte dokumentet ?-)
Avatar billede olebole Juniormester
21. marts 2007 - 15:57 #5
<ole>

Prøv:
    document.getElementById('holder').contentWindow.location.href = link;

/mvh
</bole>
Avatar billede jacob_m Nybegynder
23. marts 2007 - 09:14 #6
Undskyld jeg først svare nu, men var lige væk.

roenving >> Når jeg alerter dokumentet for jeg kommentarten [object] ved:
alert( document );

olebole >> Den melder stadig fejl.

I kan se fejlen på www.sailextreme.dk/2007 hvis det kan hjælpe !
Avatar billede olebole Juniormester
23. marts 2007 - 13:32 #7
Der kan jeg ikke se noget ... ej heller fejl  =)
Avatar billede jacob_m Nybegynder
23. marts 2007 - 13:45 #8
Hehe.. Sådan, var lige ved at opdatere et script.

Men den er lidt mærkelig den server. Den melder ikke altid PHP fejl :-S...
Avatar billede jacob_m Nybegynder
23. marts 2007 - 13:45 #9
Fejlen slår ud når man klikker på flash menuen som bruger JavaScript funktionen
Avatar billede sw_red_6 Nybegynder
23. marts 2007 - 13:54 #10
ifølge FF fejlkonsol er det her problemet:
Fejl: document.getElementByName is not a function
Kildefil: http://www.sailextreme.dk/2007/
Linje: 12
linie 12 er det her: document.getElementByName('holder').contentWindow.location.href = link;

Desuden skriver den det her når man lige er kommet ind på siden:
Fejl: parent has no properties
Kildefil: http://www.sailextreme.dk/2007/forside.php
Linje: 11
linie 11 er det her: if (!parent.document.getElementById('main_div')) {

Håber det kan hjælpe..
Avatar billede olebole Juniormester
23. marts 2007 - 13:59 #11
Nu kan jeg i det mindste se, du får fat i et objekt (alert'en)  ;o)
Avatar billede olebole Juniormester
23. marts 2007 - 14:00 #12
Hvis et element har en name-attribut, kan du få fat i det med:
    document.getElementsByName('holder')[0]

Læg mærke til s'et i 'Elements'! Funktionen returnerer et array af elementer  ;o)
Avatar billede jacob_m Nybegynder
23. marts 2007 - 14:06 #13
Nu har jeg lige prøvet med

document.getElementsByName('holder')[0].src = link;

Og det er stadig NULL.. Kan der være noget med navnet eller hvad fanden er det..
Avatar billede jacob_m Nybegynder
23. marts 2007 - 14:15 #14
olebole >> Objectet er faktisk bare document.. Men lige så snart jeg putter noget mere på så dur det ikke.

Kan de være fordi den er inde i et div eller hvad sker der!
Avatar billede olebole Juniormester
23. marts 2007 - 14:38 #15
Du overskriver åbenbart din iframe på et tidspunkt. Den eksisterer ikke, når du prøver at kalde den
Avatar billede olebole Juniormester
23. marts 2007 - 14:39 #16
Prøv at loade din side i en browser. Skriv så dette i adressefeltet på browseren:
    java script:alert(document.getElementById("main_div").innerHTML)
- og tryk 'Return'  =)
Avatar billede jacob_m Nybegynder
23. marts 2007 - 14:48 #17
ole_bole >> main_div er jo et div i den side der bliver kaldt på i iframen !
Avatar billede olebole Juniormester
23. marts 2007 - 15:02 #18
Nej, den ligger i dit hoveddokument. Kik i View Source  :)
Avatar billede jacob_m Nybegynder
23. marts 2007 - 15:09 #19
Nå ja, selvfølgelig..:D Mig der bytter rundt på tingene..
Avatar billede jacob_m Nybegynder
23. marts 2007 - 15:10 #20
Jamen så har jeg jo løst problemet !

Det er fordi jeg har denne stykke kode i de filer jeg kalder på i iframen :

        <script language="JavaScript" type="text/JavaScript">
        function load_content () {
            if (parent.document.getElementById('main_div')) {
                parent.document.getElementById('main_div').innerHTML=document.getElementById('inner_frame').innerHTML;
            }
            if (!parent.document.getElementById('main_div')) {
            window.location=('index.php') ;
            }
        }
    </script>

Hehe... Det kan vel meget vel skabe problemer, right!
Avatar billede jacob_m Nybegynder
23. marts 2007 - 15:15 #21
Nej det kan ikke passe, for det har virket med det før.. jeg ændrede bare lid på opsætningen af divs og så virkede det ikke !
Avatar billede jacob_m Nybegynder
23. marts 2007 - 15:29 #22
Nu har jeg løst problemet :D

Det var mig som lavede en fejl da jeg omstrukurede på divsene. Der kom jeg til at putte  iframen IND i main_div og som Olebole rigtigt gør opmærksom på så bliver main_div overskrevet.. Og det gør jo selvfølgelig at iframen forsvinder for evigt..

Hold da op.. Lig lige et svar alle som var med til at få mig sporet.. !
Avatar billede thesurfer Nybegynder
23. marts 2007 - 18:29 #23
jacob_m> Jeg kan ikke se hvorfor du vil tage en del af pointsne.

Olebole siger direkte til dig, at du overskriver div'en. Han fortæller dig oven i købet at div'en er på dit hoveddokument, og at du skal kigge i kildekoden..

Det næste skridt for olebole, ville næsten være at komme over til dig, fysisk, og lave ændringerne på DIT tastatur.. :-)

Min mening: Olebole burde få alle pointsne.
Min deltagelse, samt roenving's og sw_red_6's, har været minimal.

- Ingen points til mig, tak.
Avatar billede jacob_m Nybegynder
23. marts 2007 - 22:08 #24
Jeg er heller ikke ude på at tage nogle point! Lagde blot mit svar så denne spørgsmål står som "besvarede".

Men henvisning til min sidste linie i svare 15:29:36 "Hold da op.. Lig lige et svar alle som var med til at få mig sporet.. !" Bliver der også lagt op til at dele point ud :-D
Avatar billede thesurfer Nybegynder
24. marts 2007 - 13:46 #25
jacob_m> Så beklager jeg at jeg misforstod din handling.
Jeg har bare oplevet det andet, for tit.
Avatar billede jacob_m Nybegynder
25. marts 2007 - 17:28 #26
Ja, det er jeg helt med på. Det er en dårlig stil der til tider kan komme her på Eksperten...
Avatar billede olebole Juniormester
26. marts 2007 - 13:08 #27
Jeg har ikke spor imod at dele points med jer andre, så bare kast svar  ;o)
Avatar billede olebole Juniormester
26. marts 2007 - 13:08 #28
- og tak iøvrigt for opbakningen ... selvom det hele blot var en misforståelse  ;o)
Avatar billede jacob_m Nybegynder
26. marts 2007 - 13:17 #29
Så mangler vi bare et svar fra TheSurfer og Roenving :-D
Avatar billede thesurfer Nybegynder
26. marts 2007 - 13:36 #30
olebole> No problemo, mate :-)

jacob_m> Som jeg skrev i 23/03-2007 18:29:55, ønsker jeg ikke points for min (minimale) deltagelse.. :-)
Avatar billede roenving Novice
26. marts 2007 - 13:46 #31
-- og jeg springer sæ'fø'li' også over !-)
Avatar billede jacob_m Nybegynder
26. marts 2007 - 13:57 #32
Hehe.. Okay..
Avatar billede jacob_m Nybegynder
26. marts 2007 - 13:58 #33
Arg, kom til at acceptere istedet for send !..

Men er der slet ikke nogen der overhovedet vil have point så !
Avatar billede olebole Juniormester
26. marts 2007 - 14:16 #34
*LoL* - det er helt okay, Jacob. Jeg har ikke noget at bruge points til og har mere end rigeligt. Der bliver nok en anden gang ... men tak for tanken  ;o)
Avatar billede thesurfer Nybegynder
26. marts 2007 - 22:36 #35
What the..?

Hvad skete der lige med oleboles svar..?
Så vidt jeg husker, var 26/03-2007 13:08:02 et "svar", men er nu en kommentar..?

Olebole har da smidt 1 svar.. right?
Avatar billede olebole Juniormester
27. marts 2007 - 13:54 #36
Hmmm ... jeg er ikke helt sikker. Det kan være svært at holde trådene ud fra hinanden (nogen gange kan det endda være svært bare at holde tråden *LoL*), men det mener jeg faktisk også. Pudsigt - men pyt  ;o)
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