Avatar billede jesper-moeller Nybegynder
17. december 2009 - 23:42 Der er 5 kommentarer og
1 løsning

sæt iframe højde i IE og Opera

Jeg sider og forsøger at få en iframe til at tilpasse sig i højden afhængit af indhold.
Problemet er det ikke virker i IE og Opera (alle andre browsere se OK ud)

Scriptet der skal sætte højden ser sådan ud (har ikke selv skrevet det)

    function iFrameHeight() {
        if ( !document.all ) {
            h = document.getElementById('blockrandom').contentDocument.height;
            document.getElementById('blockrandom').height = h + 60 + 'px';   
        } else if( document.all ) {
            h = document.frames('blockrandom').document.body.scrollHeight;
            document.all.blockrandom.height = h + 20 + 'px';
        }
    }

Hvis jeg forsøger at sætte en alert(h) efter h = document.... får jeg undifined i Opera

Hvad skal der til at få det til at virke i IE og Opera også ?
Avatar billede mireigi Novice
18. december 2009 - 13:05 #1
Jeg ved ikke helt hvordan du har fået det til at virke i FireFox, for det burde ikke virke, ligegyldigt hvilken browser du bruger.

Browserne blokerer normalt for at du kan ændre på en iFrame og dens container fra indholdet af iFramen.

Mit gæt er, at IE og Opera blokerer for at du kan tilgå iFramens størrelse, som de bør gøre.
Avatar billede jesper-moeller Nybegynder
18. december 2009 - 16:56 #2
Ja jeg er igen javascript haj så skal ikke kunne sige om det skulle kunne lades sig gøre, men det ser nu ud til at virke

Arbejde med det til langt ud på natten igår og fik også opera til at virke hved hjælp af forsøg og googling
Da jeg fik opera til at virke gik der dog ged i safari som gjorde iframen alt for stor. så jeg lavede et safarifix så scriptet brugte den første metode for firefox alene.

Jeg har ikke kunne teste i IE (mac bruger) men nu ser det ud til at virke i Safari, FireFox, Camino, Opera og netscape (har pt ikke Crome instaleret)

Følgende er hvar jeg indtilnu er nået frem til:

    function iFrameHeight() {
    var h = 0;
    var browser = navigator.userAgent;
    if (browser.toLowerCase().indexOf('safari') > 0) {
        document.getElementById('blockrandom').height = h;
        h = document.getElementById('blockrandom').contentDocument.height;
            document.getElementById('blockrandom').height = h + 60 + 'px';
    } else {
        if (document.getElementById && !(document.all)) {
            h = document.getElementById('blockrandom').contentDocument.body.scrollHeight;
            document.getElementById('blockrandom').height = h + 60 + 'px';
        } else if(document.all) {
            h = document.frames('blockrandom').document.body.scrollHeight;
            document.all.blockrandom.height = h + 20 + 'px';
        }
    }
}
Avatar billede jesper-moeller Nybegynder
18. december 2009 - 16:58 #3
PS.

Jeg ændre ikke Iframen fra indholdet af framen, Scriptet ligger på den side hvor iframen ligger ;-)
Avatar billede jesper-moeller Nybegynder
09. februar 2010 - 04:19 #4
lukker da jeg har fundet en anden løsning
Avatar billede mireigi Novice
09. februar 2010 - 11:38 #5
Du må gerne skrive din løsning herinde så andre kan få gavn af den.
Avatar billede jesper-moeller Nybegynder
09. februar 2010 - 14:08 #6
Valgte at bruge en div med et httprequest istedet :-)
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