Avatar billede lasserasch Juniormester
07. april 2008 - 12:22 Der er 10 kommentarer og
1 løsning

Hente værdi fra Iframe vindue.

Hejsa.

Jeg har et eksisterende htm document, som viser et IFRAME vindue med noget fejlbeskrivelse i, hvis et web system går ned.


Når den indlæser denne htm fil, så gør den således :

----
<body onload='java script:document.getElementById("error").contentWindow.document.write(window.dialogArguments[0]); document.getElementById("CopyToClipboard").style.display = (window.clipboardData != null ? "" : "none")' scroll="yes" style="margin:0">

----


Det element som har ID="error" er defineret således :

----
<iframe id="error" src="about:blank" width="100%" height="100%"></iframe>
----


Jeg har brug for at lave et link på siden, som vil åbne en ny email i outlook og automatisk indsætte teksten fra iframe vinduet i body delen.

Jeg har pt. følgende stykke kode, som dog ikke virker helt :

----
<script type="text/javascript">document.write('<a href="mailto:fejl@mydomain.com?subject=System  Fejlrapportering&Body=' + document.getElementById("error").contentWindow.document + '">Rapporter denne fejl...</a>')</script>;
----

Jeg kan ikke få den til at trække teksten ud fra IFRAME vinduet.

Nogen der ved hvad jeg gør galt?


/Lasse
Avatar billede roenving Novice
07. april 2008 - 12:27 #1
1. Der må ikke være mellemrum i en url, så f.eks.

...?subject=System%20Fejlrapportering&Body...

2. hvorfor tager du ikke bare værdien fra samme sted, altså window.dialogArguments[0] ?-)
Avatar billede roenving Novice
07. april 2008 - 12:29 #2
-- og iøvrigt også encoder den:

encodeURIComponent(window.dialogArguments[0])
Avatar billede w13 Novice
07. april 2008 - 12:30 #3
Ret til:

<script type="text/javascript">document.write('<a href="mailto:fejl@mydomain.com?subject=System  Fejlrapportering&Body=' + document.getElementById("error").contentWindow.document.body.innerHTML + '">Rapporter denne fejl...</a>')</script>;

I øvrigt er document.write forældet og vil derfor ikke holde i fremtiden.
Og du kan spare "java script:" i din onload, da der som standard kun _kan_ skrives javascript-koder i en onload. Derfor er det rimelig overflødigt.
Avatar billede lasserasch Juniormester
07. april 2008 - 12:40 #4
Tak for svarene.

w13 -> Det virker ikke. Det har jeg prøvet og det gør bare at "Rapporter denne fejl..." forsvinder helt fra skærmen.

Ja, ok det er ikke mig der har lavet htm siden, og jeg ved absolut NADA om javascript, så beklager hvis den er dårligt skruet sammen.

Ja, jeg ville også meget gerne bruge window.dialogArguments[0], men jeg ville gerne teste og siden virker efter hensigten, altså debugge den. Og når jeg debugger den, så er windows.dialogArguments[0] ikke til stede. Derfor tænkte jeg at man kunne snuppe en test værdi som jeg har hardcoded ind i min IFRAME.

/Lasse
Avatar billede roenving Novice
07. april 2008 - 12:49 #5
Så lav en hardcoded værdi, som du har i en anden variabel !-)
Avatar billede lasserasch Juniormester
07. april 2008 - 12:51 #6
Og hvordan gør jeg det? Jeg ved godt det virker som dumme spørgsmål, men jeg aner absolut intet om javascript kodning.....
Avatar billede roenving Novice
07. april 2008 - 13:10 #7
<script type="text/javascript">
var minVar = "Der er fejl i databaseudtrækket";
</script>

-- og så:

... &body=' + encodeURIComponent(minVar)">Rapp ...
Avatar billede lasserasch Juniormester
07. april 2008 - 13:49 #8
Super. Det virker sgu...

smid svar roenving.

/Lasse
Avatar billede roenving Novice
07. april 2008 - 13:54 #9
Velbekomme '-)
Avatar billede roenving Novice
07. april 2008 - 14:06 #10
-- og tak for point ;~}
Avatar billede olebole Juniormester
07. april 2008 - 17:36 #11
<ole>

"Og når jeg debugger den, så er windows.dialogArguments[0] ikke til stede" >> Så er det nok fordi, der ikke bliver sendt et array med til dialogen, når den åbnes. Det er funktionen, der åbner dialogen, som skal medsende array'et  :)

/mvh
</bole>
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