Avatar billede w13 Novice
01. august 2007 - 23:28 Der er 15 kommentarer og
1 løsning

Overføre fra inputfelt til IFrame

Hej Eksperter.

Jeg er i gang med at lave en forholdsvis simpel WYSIWYG-editor i JavaScript og jeg har snart rettet alle fejl og sørget for, at den virker i de fleste browsere. Én fejl er der dog stadig i IE. WYSIWYG'en benytter et IFrame til redigering af indholdet, og jeg ville gerne overføre indholdet fra inputfelt til IFrame med følgende kode:
document.getElementById("wysiwyg").contentWindow.document.body.innerHTML=document.getElementById("editor").value;

Dette virker fint i Firefox (!!) men IKKE i Internet Explorer (!?). Den brokker sig over, at document.body ikke findes i iframet. Præcis som den brokker sig, hvis jeg skriver document.getElementByTagName("body")[0] (eller "html" eller "head").

Hvordan skal jeg så overføre fra et inputfelt til et IFrame?

Håber I kan hjælpe mig!
Avatar billede kalp Novice
01. august 2007 - 23:54 #1
Det kan muligvis have noget med dit valg af Doc type at gøre
Avatar billede w13 Novice
01. august 2007 - 23:58 #2
Resultatet er desværre det samme. Lige nu har jeg transitional. IE accepterer ikke at man adresserer IFramets indhold på den måde åbenbart. Problemet er også, at IFramet ikke har en src - dvs. indholdet er fra start blank, og derfor har jeg nok ikke nogen Body at indsætte det i. Jeg kan simpelthen ikke komme på, hvordan jeg så skal smide indhold ind i IFramet.
Avatar billede kalp Novice
02. august 2007 - 00:11 #3
prøv med contentDocument på din frame
Avatar billede kalp Novice
02. august 2007 - 00:14 #4
noget sludder.. jeg tror det er et problem som man skal kende lidt mere til teori omkring..
hvis du i kildekoden ikke kan finde en body på den frame så vil den selvfølgelig også brokke sig
Avatar billede w13 Novice
02. august 2007 - 00:36 #5
dog virker den upåklageligt i FF :)
Avatar billede kalp Novice
02. august 2007 - 00:36 #6
ahh ja.. har et muligvis okay forslag..

<iframe scr="enblankside.html" id="blah"></iframe>

så har du body! og siden er blank.
Avatar billede w13 Novice
02. august 2007 - 00:50 #7
Det er nu forsøgt, og body eller getElementsByTagName("body")[0] er stadig null eller ikke et objekt. :(
Avatar billede kalp Novice
02. august 2007 - 01:05 #8
prøv at kigge her
http://support.microsoft.com/kb/257353

og se om det hjælper hvis du skriver .all
der er eksempler.
Du skal nok stadig beholde den der blank side du lavede
Avatar billede kalp Novice
02. august 2007 - 01:06 #9
se

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<!-- TemplateBeginEditable name="doctitle" -->
<title>Untitled Document</title>
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
</head>

<body>
<!-- TemplateBeginEditable name="EditRegion3" -->
<input name="mytext" id="mytext" type="text" />
<!-- TemplateEndEditable -->
<iframe id="me" name="me" src="blank.html" width="100px" height="100px">

</iframe>

<input name="" onclick="document.all.me.contentWindow.document.body.innerHTML = document.getElementById('mytext').value;" type="button" />
</body>
</html>
Avatar billede kalp Novice
02. august 2007 - 01:07 #10
sorry.. fjerner lige alt "ravelse"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<input name="mytext" id="mytext" type="text" />
<iframe id="me" name="me" src="blank.html" width="100px" height="100px">
</iframe>
<input name="" onclick="document.all.me.contentWindow.document.body.innerHTML = document.getElementById('mytext').value;" type="button" />
</body>
</html>



og kan se du ikke behøver den der scr="blank.html" heller:)
Avatar billede w13 Novice
02. august 2007 - 01:31 #11
Ok, jeg kan bruge din kode på IFramet men ikke inde i selve javascriptkoden. Finder lige ud af, hvad der ødelægger funktionaliteten og vender tilbage.
Avatar billede w13 Novice
02. august 2007 - 03:28 #12
Nå, pludselig virker det bare. Smid svar :)
Avatar billede kalp Novice
02. august 2007 - 08:46 #13
:P
Avatar billede olebole Juniormester
02. august 2007 - 14:32 #14
<ole>

kalp >> Det er tussegammel, invalid og proprietær IE-kode fra før 1999. Ikke at det gør så meget, da hele IE's richText-editering er proprietær kode - men hvorfor dog blande det ind i XHTML, som jo netop ikke accepterer den slags kode?

- og under alle omstændigheder, så performer document.getElementById langt bedre end document.all i IE ... så der _er_ ingen undskyldning for at bruge den længere (og har ikke været det i over 8 år!)  ;o)

/mvh
</bole>
Avatar billede kalp Novice
02. august 2007 - 14:50 #15
olebole >> rolig nu:) jeg tjekkede ikke lige op på det men fulgte blot hvad Microsoft skrev her http://support.microsoft.com/kb/257353

De  har en buggy applikation:)
Avatar billede Lasse S Novice
04. september 2008 - 23:58 #16
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