Avatar billede majbom Novice
21. april 2008 - 14:38 Der er 17 kommentarer og
1 løsning

setcontent virker ikke (tinymce)

hej experter

jeg har brug for at smide noget tekst i det textarea, hvor jeg også har tinymce kørende, prøvede først med document.getElementById('textarea_id').value = "min_tekst";, men det ville den ikke, så søgte lidt på nettet og fandt frem til at men skulle bruge tinyMCE.setContent('min_tekst'); - men det virker heller ikke, jeg fårfølgende fejl:

"Objektet understøtter ikke denne egenskab eller metode"

hvad dælen gør jeg galt? synes ikke at jeg kan finde anre der har oplevet samme fejl...
Avatar billede w13 Novice
21. april 2008 - 14:57 #1
Hvad får du, hvis du skriver:
alert(document.getElementById('textarea_id').outerHTML);
og afprøver det i IE?
Avatar billede majbom Novice
21. april 2008 - 15:21 #2
ingenting, ikke engang en tom alert eller en fejl
Avatar billede w13 Novice
21. april 2008 - 15:25 #3
Det lyder absurd. Men nogle gange viser alerts ikke, hvis der slet ikke står noget i dem. Så prøv lige med følgende for en sikkerhedsskyld:

alert(document.getElementById('textarea_id') + " : " + document.getElementById('textarea_id').outerHTML);
Avatar billede jokkejensen Novice
21. april 2008 - 16:04 #4
Du kan også bare ligge 'min_tekst' inde i det <textarea> det kan tinymce fint håndtere..

Altså..

<textarea><h1>min tekst</h1><p>er fin</p></textarea>

Jeg er dog i tvivl om det skal output escapes, &lt;h1&gt; min tekst &lt;/h1&gt;
Avatar billede majbom Novice
21. april 2008 - 18:58 #5
-> w13 - det virkede det første du skrev, jeg havde bare dummet mig... den skriver <TEXTAREA id=texarea_id name=textarea_name cols=30 rows=50></TEXTAREA>

-> jokkejensen - det kan jeg ikke bruge, da jeg hente indholdet med AJAX...
Avatar billede w13 Novice
21. april 2008 - 18:58 #6
Så i stedet for .value, så prøv med .appendChild(document.createTextNode('min_tekst'));
Avatar billede w13 Novice
21. april 2008 - 18:59 #7
Men hvis der allerede står noget i textareaet, skal det være:

.firstChild.nodeValue('min_tekst');
Avatar billede majbom Novice
21. april 2008 - 21:14 #8
det virker fint, hvis jeg i slutningen af filen med textarea'et sætter indholdet med appendChild, men hvis jeg fra min .js fil gør det, virker det ikke.
hvis jeg efterfølgende skriver:

alert(document.getElementById('textarea_id').value); skriver den godt nok hvad der burde have stået i textarea'et... meget mystisk synes jeg :)
Avatar billede majbom Novice
21. april 2008 - 21:17 #9
hvis jeg så selv skriver noget i textarea'et og laver en alert, skriver den kun det der med mit javascript skulle indsættes i det, men ikke det jeg selv skriver, som om at når jeg tilføjer tekst med appendChild oghenter det med .value er det ikke fra det textarea jeg kan se... lidt svært at forklare...
Avatar billede olebole Juniormester
22. april 2008 - 01:31 #10
<ole>

Det er ikke et textarea, du skriver i - det er en iframe  ;o)

Gå til: http://tinymce.moxiecode.com/example_full.php
Skriv dette i adresselinjen og tryk 'Return':
    java script:alert(document.getElementsByTagName("iframe")[0].contentDocument.body.innerHTML)

Skriv derefter noget i editoren. Klik i adressefeltet og tryk 'Return'. Det er dén iframe, du skriver i.

/mvh
</bole>
Avatar billede olebole Juniormester
22. april 2008 - 01:33 #11
XBrowser:
    java script:alert(document.getElementsByTagName("iframe")[0].contentWindow.document.body.innerHTML)  ;o)
Avatar billede olebole Juniormester
22. april 2008 - 01:50 #12
Jeg kan nu også få denne til at virke:
    java script:alert(document.getElementsByTagName("textarea")[0].value)
Avatar billede majbom Novice
22. april 2008 - 18:25 #13
ja det virker meget godt, i hvert fald dit sidste eksempel.

men kun så længe jeg bruger det i slutningen af min html-fil, og ikke hvis jeg gør det i min inkluderede javascript-fil... ligesom de andre eksempler...
Avatar billede majbom Novice
22. april 2008 - 19:06 #14
hvis jeg skriver:

<script type="text/javascript">
document.getElementsByTagName("textarea")[0].value = "hejsa";
alert(document.getElementsByTagName("textarea")[0].value);
</script>

i slutningen af min html-fil virker det fint, der står "hejsa" i mit textarea og der kommer en alert op med samme tekst.

men hvis jeg i toppen af min html-fil laver en javascript-function med nøjagtig samme kode, og kører den vha. et link, kommer teksten ikke i mit textarea, men den kommer op i alert'en

hvis jeg kører funktionen i slutningen af min html-fil virker det også som det skal, men ikke når jeg kører den via et link...
Avatar billede majbom Novice
22. april 2008 - 19:39 #15
jeg kan heller ikke få dit eksempel i 22/4-2008 01:31:08 til at virke, jeg får følgende fejl:

'document.getElementsByTagName(...).0.contentDocument.body' er null ellerikke et objekt

de andre to virker dog fint
Avatar billede majbom Novice
22. april 2008 - 19:42 #16
ovenstående gør sig gældende både på full_example på moxiecode's side og på min egen side
Avatar billede majbom Novice
22. april 2008 - 19:55 #17
java script:tinyMCE.setContent('hejsa');

i adresselinjen virker hverken på min side eller på moxiecode...
Avatar billede majbom Novice
28. april 2008 - 09:15 #18
nå, jeg fandt ud af at gøre det på følgende måde:

var editor = tinyMCE.get('textarea_id');
alert(editor.getContent());
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