Avatar billede thb Nybegynder
06. december 2005 - 11:12 Der er 7 kommentarer

html kode fra iframe til side

Hej alle,

Jeg har en side som bliver vist i et iframe, hvilket jeg er meget imod, og så tænkte jeg om det ikke var muligt at gøre iframet til 0x0 pixel og så med noget javascript hente html koden og smide det ud normalt på siden istedet..

Kan det lade sig gøre, og hvis ja, er det så en okay løsning ?

Thomas
Avatar billede softspot Forsker
06. december 2005 - 11:18 #1
Det lyder da OK - hvis du kan affinde dig med at nogle brugere (med ældre browsere) ikke kan se dit site.
Avatar billede thb Nybegynder
06. december 2005 - 11:34 #2
okay, men ved du hvordan jeg kan gøre det... Er ikke den stærkeste i js

eventuelt også hvordan jeg stripper i js..

Thomas
Avatar billede softspot Forsker
06. december 2005 - 12:12 #3
En mulig løsning er nedenstående. Den består af en hovedside som indeholder lidt script til housekeeping og en underside der indeholder lidt script til at gøre hovedsiden opmærksom på at den er klar til at blive aflæst. Hovedsiden ser ud som følger:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
  <head>
    <title>default</title>
    <script tpye="text/javascript">
      function copyFrame(doc) {
        var ct = document.getElementById("content");
        if(ct) {
          ct.innerHTML = doc.body.innerHTML;
        }
      }
      window.onload = function() {
        // Når hovedsiden er indlæst, kan undersiden indlæses...
        document.getElementById("tmp").src = "test.htm";
      }
    </script>
  </head>
  <body>
   
    <div id="content">Der er ikke sket noget endnu...</div>   
   
    <iframe id="tmp" src=""></iframe>
     
  </body>
</html>


og undersiden ser således ud (kaldt test.htm):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
  <head>
    <title>test</title>
    <script type="text/javascript">
      window.onload = function() {
        // Check om der er en parent og om der på denne
        // findes en identifier som hedder copyFrame
        // Hvis der gør så kald den...
        if(parent && parent.copyFrame) parent.copyFrame(document);
      }
    </script>
  </head>
  <body>
   
    <p>Dette indhold skal kopieres over til et andet sted...</p>   
   
  </body>
</html>


Du kan evt. lægge scriptet på undersiden, til at kalde tilbage til hovedsiden, ud i en ekstern scriptfil og så inkludere den de steder hvor det er nødvendigt. Så bliver det lettere at vedligeholde og undersiderne bliver mindre.

Jeg er klar over at dette måske ikke er den bedste metode, men det er som sagt et bud på en løsning... :)
Avatar billede thb Nybegynder
06. december 2005 - 13:45 #4
Hmm...

Tror ikke helt jeg kan bruge det ...

Det jeg havde tænkt mig, var:

<div id="content"></div>
<iframe src="side.html" style="width: 0; height: 0;" name="iframe-content"></iframe>

og så på en måde så skulle indholdet af iframe-content blive smidt ind i #content.

Det kan din kode da ikke, vel :) Ellers må du undskylde...  hehe

Thomas
Avatar billede thb Nybegynder
06. december 2005 - 13:45 #5
Nå, ja, jeg får nok første kigget på det igen imorgen eller torsdag..

Thomas
Avatar billede softspot Forsker
06. december 2005 - 13:48 #6
Hvis der er noget den kode kan så er det da lige det... :D

Prøv lige at kigge på det, så ser du måske lyset, ellers spørger du bare lidt mere...
Avatar billede softspot Forsker
06. december 2005 - 13:51 #7
Den tager dog kun det kode som ligger indenfor <body> og </body> i den side som din iframe viser. Jeg er ikke klar over om man kan hente hele HTML-koden ud (altså med head, script osv.), men det ville på den anden side heller ikke kunne bruges til meget hvis din iframe skulle overleve - for hvis du overskriver hovedsiden med indholdet af undersiden, så kunne du jo ligeså godt vise undersiden i hovedsiden... :)
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