Avatar billede Daniel.E Praktikant
08. august 2005 - 11:32 Der er 36 kommentarer og
2 løsninger

hente indholdet af et iframe

var Icontent = top.frames.mail.document.getElementById('frames');

Icontent.Hvanu ??

hvordan får man indholdet af et iframe... og husk lige at jeg ikke specifikt benytter IE (skod browser).  men det skal virke i FF også....

indholdet af et iframe ??
Avatar billede busschou Praktikant
08. august 2005 - 11:36 #1
innerHTML vel?
Avatar billede Daniel.E Praktikant
08. august 2005 - 11:41 #2
nej dur ikke..
Avatar billede Daniel.E Praktikant
08. august 2005 - 11:42 #3
det tænkte jeg nemlig også... men den går ikke så nemt, besluttede den sig om..  desværre
Avatar billede busschou Praktikant
08. august 2005 - 11:42 #4
ok så ved jeg det ikke desværre
Avatar billede Daniel.E Praktikant
08. august 2005 - 11:44 #5
ok :(

venter bare på den næste der skriver..
Avatar billede roenving Novice
08. august 2005 - 11:55 #6
Har du en (i)frame i en (i)frame ?-)

principielt:

top.frameNavn1.frameNavn2.document.body.innerHTML;//men det dur ikke i xhtml strict og 1.1 !-)
Avatar billede Daniel.E Praktikant
08. august 2005 - 12:04 #7
ahhh
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

se lige hvad jeg bruger
Avatar billede Daniel.E Praktikant
08. august 2005 - 12:05 #8
puha...

ok...

jeg har et iframe som indeholdet er frameset som senrer har et iframe med noget indhold.. det er tæmlig stort det jeg sidder med..
Avatar billede Daniel.E Praktikant
08. august 2005 - 12:07 #9
men den side jeg tester på er ikke XHTML:..
Avatar billede Daniel.E Praktikant
08. august 2005 - 12:11 #10
den her virker fint:

top.frames.mail.document.getElementById('frames').src

men jeg får jo bare src.. og den passer også med hvad der skal i det aktuellse IFRAME.... Men jeg kan ikke få fat i selve indholdet...
Avatar billede roenving Novice
08. august 2005 - 12:12 #11
-- og i ovenstående er der meget, som ikke vil virke i xhtml strict og 1.1 ...

frames-collection er ikke tilrådighed, og dermed heller ikke .frameNavn1/2 !-)

I et vindue skal man have fat i documentElement for at få fat i indholdet ...

-- og indholdet af et element skal man have fat i via nodeValue !o]
Avatar billede Daniel.E Praktikant
08. august 2005 - 12:16 #12
top.frames.mail.document.getElementById('frames').nodeValue

ok den prøver jeg
Avatar billede Daniel.E Praktikant
08. august 2005 - 12:17 #13
den retunrer null med overnstående
Avatar billede Daniel.E Praktikant
08. august 2005 - 13:28 #14
anybody :)
Avatar billede Daniel.E Praktikant
08. august 2005 - 14:46 #15
Denne kode benytter jeg:
top.frames.mail.document.getElementById('frames').contentDocument.body.innerHTML;

Og det er som det skal være.

Ok, selve sitet og IFRAME´et er af samme domain, så det er ikke noget med det. 


Den her fejlbesked har jeg kommer frem til:

Fejl: uncaught exception: Adgang nægtet til at opnå egenskaben HTMLDocument.body
Avatar billede roenving Novice
08. august 2005 - 14:49 #16
Hvilke(n) browser(e) giver den fejlbesked ?-)
Avatar billede Daniel.E Praktikant
08. august 2005 - 15:11 #17
Det Firefox jeg bruger verion 1.0.4
Avatar billede Daniel.E Praktikant
08. august 2005 - 15:12 #18
Og jeg er har brugt den indbygget DOM inspector, til at finde frem til koden.  Og den virker også hvis jeg bare sætter iframe src="test.txt" men ikke hvis det er en html siden f.eks...
Avatar billede Daniel.E Praktikant
08. august 2005 - 15:13 #19
ok.. en mindre taste fejl.. det virker også hvis det er lokale filer jeg sætter iframe src til...
Avatar billede Daniel.E Praktikant
08. august 2005 - 15:15 #20
hvis du kender en metode til at få det indhold der kommer fra en URL ind i en variablen, uden at gøre noget specielt.. eks..

var content = getUrlContent('http://www.google.com');

nu findes dennne funktion så ikke.. men det ville være en rar ting.. hvis dette kunne lade sig gøre, kan jeg sløjfe den nuværende problemstilling.
Avatar billede roenving Novice
08. august 2005 - 16:24 #21
Det kan man bare ikke !-)

Der er idag totalt vandtætte skodder mellem forskellige domæner, så du kan aldrig scripte på et window-objekt, som kommer fra et andet domæne ...

-- men du kan, nemmest serverside, men også i i hvert fald IE og Geckoerne, sende en xmlhttp-request og på den måde aflæse en side !o]
Avatar billede olebole Juniormester
08. august 2005 - 17:26 #22
<ole>

Det er formodentlig X-domain scripting, du forsøger - og det kan man jo som bekendt ikke. Men derudover kan du heller ikke bruge innerHTML under XHTML.

Hvis du insisterer på at skrive XHTML, skal du nok finde ud af, hvad XHTML overhovedet er - og hvordan det virker (og ikke virker) - for det kniber tydeligvis med reel viden  :)
En start kunne være at læse disse to artikler:
    http://www.eksperten.dk/artikler/537
    http://www.eksperten.dk/artikler/538

/mvh
</bole>
Avatar billede Daniel.E Praktikant
09. august 2005 - 10:34 #23
Olebole >>

Jeg ved godt hvad XHTML er.  Det som du skulle have sagt var at jeg manglede javascript viden inden under XHTML standarderne.  Det ved jeg nemlig zero om. ;)

Jeg har ikke mixup af 2 forskellige domæner.  Det som jeg sidder og arbejder med, er samme domæne, der er bare lige en ting.  Alt hvad der eri IFRAME er subdomæne.my_domæne.dk, og det andet er subdomæne.my_domæne.dk.  Så selve domæne delen skulle være i orden.

Jeg kan ikke bruge IE specifikke løsninger til noget, da Microsoft har det med at indbygget ikke standiliseret funktioner.  desværre ;)


Det skal være XHTML, det er ikke mit valgt, igen desværre.
Avatar billede Daniel.E Praktikant
09. august 2005 - 10:35 #24
Udfra hvad i siger, kender i ikke en løsning.  Jeg lukker spørgsmålet.

hvis der er nolge som mener de skal have points, smid et svar og forklar hvorfor.

Tal for hjælpen.  Kigger igen i morgen for at lukke.
Avatar billede busschou Praktikant
09. august 2005 - 10:36 #25
jeg mener jeg skal have point fordi jeg er så artig ;o) hehe
Avatar billede roenving Novice
09. august 2005 - 10:46 #26
Du har præcis een chance for at script på tværs af domæner, men det kræver, at du indser problemet på forhånd, og fortæller javascript-fortolkeren, at den skal betragte både sit eget og det andet dokuments domæne som det samme !-)

-- de(n) eneste gyldige værdi(er) for document.domain er dog forkortelser af server-navnet !o]

-- så www.my_domain.dk kan kun sættes til my_domain.dk, mens www.hej.my_domain.dk kan sættes både til hej.my_domain.dk og my_domain.dk ...

-- bemærk, at det gælder om at have tungen lige i munden, hvis man har domæner på flere niveauer, for hvis document.domain ikke indeholder præcis det samme, vil der blive blokeret for scripting !-)
Avatar billede busschou Praktikant
09. august 2005 - 10:55 #27
Du kan som roenving siger gøre det serverside
fx i asp
----
<%
  Dim objXMLHTTP, objXml

  ' Lav objektet der henter data afhængig hvad din server har
  'Set objXml = Server.CreateObject("Microsoft.XMLHTTP")
  Set objXml = Server.CreateObject("MSXML2.ServerXMLHTTP")

  ' Åben forbindelsen til serveren
  objXml.Open "GET", "http://www.eksperten.dk/", False
 
  ' Send dataene
  objXml.Send

  ' Vis det hentede data, først som sourcekode og derefter som HTML
  Response.Write "<h1>HTML teksten</h1><xmp>"
  Response.Write objXml.ResponseText
  Response.Write "</xmp><p><hr/><p><h1>HTML format</h1>"

  Response.Write objXml.ResponseText

  Set objXml = Nothing
%>
Avatar billede olebole Juniormester
09. august 2005 - 16:52 #28
vb2 >> Nej, det, at du ikke kan bruge innerHTML under XHTML, har intet med JavaScript og ECMA-standarden at gøre. Det er nemlig ikke ECMA, der fastlægger den slags  :)
Det gør W3C derimod som en del af XHTML-DOM'en (de samme bindinger gælder f.eks. i VBScript). Det viser vel meget godt, at mine iagttagelser omkring din sparsomme XHTML-viden holder vand ... og jeg vil stadig mene, du bør læse de to artikler, som forhåbentlig kan hæve den en smule  ;o)
Avatar billede olebole Juniormester
11. august 2005 - 17:39 #29
Hva' så, vb2 ... har du fået lært noget XHTML? Du skal vel snart til at forholde dig til denne tråd igen  :)
Avatar billede olebole Juniormester
12. august 2005 - 20:29 #30
Halloooooo ... du har et åbent spørgsmål her  :)
Avatar billede Daniel.E Praktikant
30. august 2005 - 08:32 #31
Hej alle

læg et svar
Avatar billede busschou Praktikant
30. august 2005 - 08:36 #32
her er et fra mig :o)
Avatar billede olebole Juniormester
30. august 2005 - 09:37 #33
- fandt du så ud af, at document.body og innerHTML hører til under HTML-interface'et og ikke kan bruges under XHTML-DOM'en?
Avatar billede Daniel.E Praktikant
01. september 2005 - 22:28 #34
jeg kom så langt til at man ikke umiddelbart kunne hvis man havde en XHTML 1.1 doc type, da det var fjernet...

men det kan være at jeg ikke har ret..
Avatar billede olebole Juniormester
02. september 2005 - 01:03 #35
Hverken under XHTML1.0 eller 1.1 - hvis man altså skal have noget ud af XHTML-koden. Bruger man idag HTML-interface'et (document.write, document.images, ELEMENT.innerHTML, eller blot ELEMENT.id) i et XHTML, overtager HTML-parseren arbejdet med dokumentet.
Det sker som sagt idag, fordi browserne spænder et sikkerhedsnet ud under koderen. Om ikke ret lang tid (når XHTML2.0 bliver implementeret i browserne), vil det ikke længere være tilfældet. Til den tid går browseren simpelthen død med en XML-fejl, hvis bare du skriver:
  document.getElementById("Ups").className = "dontWork";

Det læser man dog kun i en forsvindende lille del af de tutorials om XHTML, man kan læse på nettet ... og de fleste bøger om emnet er såmænd også ubrugelige, hvis resultatet af at læse dem skal være, at man bliver i stand til at skrive brugbart XHTML.

Det er faktisk ved at være et major problem for nettets udvikling, at folk ikke søger informationerne, det eneste sted, man kan stole på - men i stedet henter dem fra alle mulige utroværdige kilder, skrevet af folk, der kun på overfladen virker kompetente  :)
Avatar billede olebole Juniormester
02. september 2005 - 01:04 #36
... og tak for points  :)
Avatar billede roenving Novice
02. september 2005 - 01:17 #37
À propos ole, jeg har luret lidt på, hvordan man fanger en iframes indhold, når nu frames-collection ikke længere er tilgængelig ...

-- den lidt spøjse IE-DOM-property Document (bemærk D'et !-) synes at være svaret, men er det det samme som documentElement ?-)
Avatar billede Lasse S Novice
04. september 2008 - 23:59 #38
oplever tilsvarende problemer, hjælp søges på http://www.eksperten.dk/spm/844291
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