Avatar billede simonbk Nybegynder
31. juli 2006 - 13:03 Der er 13 kommentarer og
1 løsning

Vis OG load div eller iframe

Jeg er ved at lave et site som skal have følgende funktionalitet:

Når man klikker på et link skal vises OG loades en div layer eller en iframe med indhold (billeder) uden at hele siden skal reloades. Når man trykker på linket igen skal det gemmes væk. Indholdet er tungt, så det er væsentlig at de først loades når linket aktiveres. Endvidere skal iframen eller diven tilpasse / følge indholdet.

Er der nogle som et godt script til dette?
Avatar billede madeindk Nybegynder
31. juli 2006 - 13:21 #1
Hej, kunne du bruge et script der folder Div'en ud og så viser iframen? Iframen bliver først loadet efter div'en bliver vist - eller samtidig kan man vel sige :-)
Avatar billede Slettet bruger
31. juli 2006 - 13:26 #2
Hvis du vil gøre det med en div alene, skal du nok ud i AJAX.. Ellers kan du vel også sagtens lave en display: none; på en iframe.
Avatar billede madeindk Nybegynder
31. juli 2006 - 13:27 #3
Nej wicez - så blir iframens indhold hentet alligevel, det er ikke smart som han selv skriver hvis iframen indeholder super mange billeder og det ikke er dem brugeren ønsker at se fx. :-)
Avatar billede madeindk Nybegynder
31. juli 2006 - 13:32 #4
<script type="text/javascript">

function view( targetId ){
       
        if (document.getElementById){
                target = document.getElementById( targetId );
                  if (target.style.display == "none"){
                      target.style.display = "";
                  } else {
                      target.style.display = "";
                  }
            }
}

function editIframe(o){
        document.getElementById('DivIframe').src = null;
        document.getElementById('DivIframe').src = o;
}

</script>

<b><a href="#" onclick="view('div'); editIframe('http://google.dk');">Klik her for at se iframe</a></b><br><br>

<div id="div" style="display:none;">Her er Div'ens indhold samt iframe...<br><br><iframe id="DivIframe" src="">Browser fejl</iframe></div>
Avatar billede Slettet bruger
31. juli 2006 - 13:43 #5
madeindk Du kan jo sagtens starte uden en startside i iframen, og så hente indholdet samtidig med at du sætter display: block...
Avatar billede madeindk Nybegynder
31. juli 2006 - 13:43 #6
Ja, det kunne man jo nok godt - men lad os nu se om han ikke kan bruge det jeg har smidt :-)
Avatar billede simonbk Nybegynder
31. juli 2006 - 13:46 #7
Tak for det! Det virker halvejs. To ting:

1. Når man trykker på linket igen, skal diven og iframen blive usynlig igen.
2. iframen skal automatisk tilpasse sig indholdet (kan man style iframes på samme måde som divs?). Ved godt det hører til under CSS, men tingene er jo afhængig af hinanden.
Avatar billede madeindk Nybegynder
31. juli 2006 - 13:50 #8
1.

<script type="text/javascript">

function view( targetId ){
       
        if (document.getElementById){
                target = document.getElementById( targetId );
                  if (target.style.display == "none"){
                      target.style.display = "";
                  } else {
                      target.style.display = "none";
                  }
            }
}

function editIframe(o){
        document.getElementById('DivIframe').src = null;
        document.getElementById('DivIframe').src = o;
}

</script>

2. Ja, du kan godt style en iframe :-)
Avatar billede simonbk Nybegynder
31. juli 2006 - 15:23 #9
Det ser ud til at være den rette løsning, men jeg kan ikke få den til at fungere med flere forskellige iframes. På siden skal der være op til 15 iframes som hver indeholder cases. Disse skal være uafhængige af hinanden. Når jeg trykker på test1 åbner framen rigtig nok, men når jeg trykker på test lukker framen (en anden frame skulle åbne). Giver det mening?
http://www.simonkampmann.dk/testiframe4.html

Dertil kommer at iframes ikke styles eller opfører sig som divs - desværre. Men jeg må se om jeg kan finde en løsning på det...
Avatar billede madeindk Nybegynder
31. juli 2006 - 15:45 #10
Det er da ærgelig talt også ret indlysende at den bliver forvirret over det der - du kalder jo dine divs det samme - det holder ikke. De skal ha et unikt navn.

Har lavet om i koden nu... Du skal nu definere først hvad din div hedder (ID), derefter sidens url og til sidst hvad iframen hedder - iframen skal desuden også ha et unikt navn - HUSK DET

<a href="#" onclick="view('divnavn'); editIframe('sideurl', 'iframenavn');">Link</a>

Har også rettet på din kode fra din side - denne her virker. Er testet på egen server.

<script type="text/javascript">

function view( targetId ){
       
        if (document.getElementById){
                target = document.getElementById( targetId );
                  if (target.style.display == "none"){
                      target.style.display = "";
                  } else {
                      target.style.display = "none";
                  }
            }
}

function editIframe(o, frame){
        document.getElementById(frame).src = null;
        document.getElementById(frame).src = o;
}

</script>

<a href="#" onclick="view('div1'); editIframe('2.html', 'Case1_Iframe');">Test1</a>

<div id="div1" style="display:none;"><iframe id="Case1_Iframe" src="">Browser fejl</iframe></div>


<div id="divtest">
<b><a href="#" onclick="view('div2'); editIframe('3.html', 'Case2_Iframe');">Test2</a>

<div id="div2" style="display:none;"><iframe id="Case2_Iframe" src="">Browser fejl</iframe></div>
</div>
Avatar billede madeindk Nybegynder
31. juli 2006 - 15:51 #11
ærgelig = ærlig :-)
Avatar billede simonbk Nybegynder
31. juli 2006 - 19:32 #12
Tak for hjælpen!!! Det var storslået...
Avatar billede simonbk Nybegynder
31. juli 2006 - 19:35 #13
Hvordan giver jeg pointene?? ;-)
Avatar billede madeindk Nybegynder
31. juli 2006 - 20:28 #14
Jeg skal smide et svar og så skal du acceptere det ved at markere mit brugernavn lige over besked feltet :-)
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