12. juni 2007 - 13:42Der er
14 kommentarer og 1 løsning
Knytte indhold af IFrame (wysiwyg-editor) til textarea
Hej Eksperter.
Jeg har i noget tid arbejdet på en wysiwyg-editor, hvor man redigerer indholdet i et IFrame. Lige nu er den dog ikke knyttet til et textarea i en form.
Nogle forslag til, hvordan jeg lettest/smartest knytter den til et textarea, sådan at det indtastede i IFramet overføres til næste side under textareaets navn ved klik på Submit?
Hvordan dælen bære du dig ad med at indtaste noget i en IFrame? Jeg ville da tro at det var et textarea man skulle indtaste i og så se resultatet i en IFrame.. nå, men hvad ved jeg..
Byg det hele op med en skjult frame, denne kan du så kan gemme IFrames indhold i når der bliver trykket på submit. Denne skjulte frame vil så også værre der på den næste og du kan så hente dataen derfra igen.
Hvorfor dog blande frames ind i dén løsning? Du kan da bare læse indholdet af iframe'en - og indsætte indholdet i et skjult felt i en form. Det er svært at se, hvad et frameset skal bruges til =)
Det kan godt værre at du har ret Ole, jeg tænkte bare at der nok var begrænsninger på hvor meget indhold der kan være i et form-felt, men det kan da godt værre at der ikke er det. w13 - Ole's løsning er nok den mest korrekte.
Normalt bruger jeg ikke frames, men nu er det sådan, at min side allerede er bygget op i frames for en gangs skyld, så din løsning passede perfekt. Desuden tager olebole nok ikke imod pointene og du kan i hvert fald få dem for din hjælp. :) Så opret du et svar.
Jeg bruger ikke selv færdig-kodede editors, men såvidt jeg husker, er den, der hedder htmlArea, bygget over et textarea. Under alle omstændigheder skal det være et _meget_ langt dokument, hvis ikke det kan sendes/opbevares i et textarea.
- og hvad skulle man egentlig bruge en editor til, hvis man ikke kunne poste indholdet til en server via et felt i en form? ;o)
Jo, altså.. Editoren er også en, som jeg har lavet selv. (Egentlig er det en, som du og jeg har lavet selv, Ole, da du har hjulpet mig med flere af de ting, jeg ikke havde arbejdet med før.)
Jeg benytter et IFrame til at lade brugeren redigere indholdet og har hidtil kun arbejdet på at gøre dette funktionelt. Nu skal det så gerne overføres til næste side, og ja, det skal helst ske i et textarea, men hvornår ville du overføre fra IFrame til Textarea?
Jeg ville jo helst en kode, som ikke først gjorde dette ved submit, sådan at man kan refere til textareaet i stedet for IFramet med javascript i sin kode, hvis det nu skulle blive nødvendigt.
Hehe ... så må jeg først bede lestrata sætte sig ned og tage en Fontex :D
Normalt er jeg strid (læs: fundamentalistisk) modstander af at benytte innerHTML - men da alle editor-funktionaliteterne i forvejen ligger milevidt fra alle standarder, sker der ikke den store skade ved at bruge den her (der er typsik heller ingen element-referencer, der kan overskrives i en editor).
Derfor kunne du jo skrive noget à la:
var oInp = document.getElementById("et_eller_andet_textarea"); var oCont = document.getElementById("wysiwyg").contentWindow.document.body; oInp.value = oCont.innerHTML;
Jaeh, det bliver nok sådan noget. Men kan jeg virkelig først bruge dette ved submit? Jeg håbede, at mit skjulte textarea kunne indeholde dette undervejs i brugen af editoren nemlig.
Faktisk har jeg skrevet en 'oprenser' til den slags, som fungerer 'kanont' ... uden innerHTML. Den hører til i min 'madkasse' (de få ting, jeg yderst nødigt deler - da jeg jo også selv skal leve), men jeg kan da sige så meget, at den traverserer editor'ens DOM og opretter tilsvarende elementer i et abstrakt XML-dokument. Til slut serialiseres XML-dokumentet - hvis case, man jo selv styrer, når man opretter elementer (som oftest lowerCase) - og jeg har så skrevet et par algoritmer, der styrer linjeindrykning, hvis man har valgt 'pæn udskrift' (ellers udskrives blot på én linje).
Det er ikke helt ligetil, men det kan lade sig gøre. I første omgang vil jeg dog absolut råde til at bruge innerHTML (selvom lestrata aldrig havde troet, han skulle opleve det) ;D
w13 >> du kan have 278 skjulte textareas liggende, hvis du vil ... og således gerne et til midlertidig opbevaring af data ;o)
- og så behøver det i øvrigt slet ikke at være et textarea. Det kan være et hvilket somhelst element (så sætter du bare ikke dets indhold med 'value' - men med innerHTML). Jeg nævnte blot textarea'et, så du også kunne bruge det til at poste mod serveren med ... men det kan du selvfølgelig ændre alt efter resten af din opbygning =)
Synes godt om
Ny brugerNybegynder
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.