Avatar billede glaede.dk Nybegynder
04. november 2010 - 14:13 Der er 14 kommentarer

Indhold fra iFrame

Hejsa,

Jeg har et mindre problem.. Jeg bruger en skjult iframe til at lave et http kald og det fungere fint. Sagen er nu den at jeg har behov for at kende til det tekst som kommer retur. Altså når http kaldet er lavet, så returneres der OK til den iframe. Men det tekst skal jeg bruge til at afgøre hvad der dernæst skal ske.

Jeg har prøvet lidt af hvert efterhånden med noget innerHTML og lignende, men det fungere ikke rigtig. Er der nogen derude som har erfaring med det?

Her ses måden hvorpå jeg opretter min iframe:

        var e = document.createElement('iframe');
        e.src = link;
        e.style.display = 'none';
        document.body.appendChild(e);
Avatar billede glaede.dk Nybegynder
04. november 2010 - 14:13 #1
Glemte lige at fortælle at jeg har prøvet at give min iframe et navn og et id og på den måde tilgå dataen, men det dur ikke som jeg gerne vil have det. Jeg får, alt efter hvordan jeg griber det an, smidt noget HTML Object værk tilbage i hovedet.
Avatar billede mcb2001 Nybegynder
04. november 2010 - 14:15 #2
det kan ikke lade sig gøre
Avatar billede bkp Nybegynder
04. november 2010 - 14:47 #3
Kunne du ikke hente det ind i en skjult Div istedet, og så bruge denne guide:
http://www.eksperten.dk/guide/1385
Avatar billede glaede.dk Nybegynder
04. november 2010 - 14:52 #4
Det kan da ikke passe det ikke kan lade sig gøre?
Avatar billede bkp Nybegynder
04. november 2010 - 15:04 #5
Som sagt, kan du gøre det med jQuery og Ajax :-)
Avatar billede bkp Nybegynder
04. november 2010 - 15:33 #6
Et simpelt eksempel fra: http://api.jquery.com/jQuery.get
$.get('ajax/test.html', function(data) {
  $('.result').html(data);
  alert('Load was performed.');
});


Det er da bedre end at hente siden ind i IFrame, variablen data indeholder hele den side du henter, og indsætter dette i en div der har class='result'
Avatar billede glaede.dk Nybegynder
04. november 2010 - 15:36 #7
Problemet er at min første løsning med JQuery og $.get/$.post ikke fungere. Sagen er at IE skriver "Access denied" i en JavaScript fejl. Det fungere fint i Mozilla osv. Men ikke i IE.
Avatar billede glaede.dk Nybegynder
05. november 2010 - 08:34 #8
Problemet er at det jeg skal requeste ikke ligger på samme domæne og det kan IE ikke lide. Derfor henter jeg det ind i en iFrame.. Nu vil jeg så gerne hente "OK" ud som bliver skrevet i den iFrame. Det må da kunne lade sig gøre.
Avatar billede webmover Nybegynder
05. november 2010 - 12:36 #9
For at sende indhold ind i en Iframe skal du bruge

var iframe = document.getElementById('testFrame');

var content = '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><title>Iframe</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><body ">Noget indhold</body></html>';

iframe.contentWindow.document.open();
iframe.contentWindow.document.write(content);
iframe.contentWindow.document.close();
Avatar billede webmover Nybegynder
05. november 2010 - 12:38 #10
Det er forøvrigt også den metode man bruger når man bygger en wysiwyg editor via en iframe som f.eks TinyMCE
Avatar billede glaede.dk Nybegynder
05. november 2010 - 12:39 #11
Men jeg skal sådan set ikke sætte indhold ind i en iframe, men læse indholdet fra en iframe.. Jeg laver et HTTP kald i en iframe og den returnere så "OK". Det tekst den returnere skal jeg bruge for at kunne bestemme hvad der dernæst skal ske alt efter udfald.
Avatar billede glaede.dk Nybegynder
08. november 2010 - 11:14 #12
Ingen der kan hjælpe? Det kan simpelthen ikke passe at man ikke kan læse data fra en iframe. Det nægter jeg at tro.
Avatar billede glaede.dk Nybegynder
08. november 2010 - 13:22 #13
Det her stykke kode gør præcis det jeg gerne vil opnå i IE:

    $.ajax({
        type: 'POST',
        url: url,
        success: function(response) {window.close(); },
        error: function(xhr, type, exception) { alert("Error: " + type); }
    })

Når kaldet er lavet, så skal den lukke vinduet. Det dur desværre bare ikke i IE. Nogen bud?
Avatar billede glaede.dk Nybegynder
08. november 2010 - 13:41 #14
Evt. kan man måske lave således at en funktion bliver kaldt når ens iframe er loaded?
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