17. januar 2003 - 11:59Der er
24 kommentarer og 1 løsning
Prædefineret tekst i DHTML Editor
Jeg har oprettet en wysiwyg editor med microsofts DHTML Editor component. Denne editor vil jeg gerne have til at arbejde sammen med en database. Jeg kan uden problemer gemme i min database, men jeg kan ikke få vist indhold fra min database i min editor, når jeg åbner en side.
Jeg har forsøgt at skrive en javascript funktion, der benytter sig af createRange, men det virker ikke.
Er der nogen, der har har erfaringer med dette component?
I min editor bliver feltet hvor man opretter sin tekst vist gennem en Iframe den side der bliver kaldt i denne hedder IE_textbox.asp.
når jeg skal rette en tekst sender jeg en parameter med til denne IE_textbox.asp?mode=edit&id=12 så har jeg i selve IE_textbox.asp siden bare et lille script der siger.
If request.querystring("mode")="edit" then SQL = "Select * from TABEL Where ID = "&request.querystring("id")&" " set rs = Connect.Execute(SQL) end if
>> Bobbedude Jeg forstår hvad du mener, men mit problem er at ikek at læse ud af databasen, men problemet er at få skrevet det ud i mit dokument. Jeg bruger et cgi program til at hente data i min db, men jeg ved ikke hvordan jeg viser dem på min side.
Hvis jeg skal konkretisere mit problem yderligere, så kan i på ovenstående link se, at der står : This is a release note. som standard, når man åbner siden. Hvordan får man den værdi til at blive vist, når siden åbnes?
Der er en funktion ved navn "MENU_FILE_OPEN_onclick()", som bliver indlæst i onload (sammen med en masse andet). Den loader blot indholdet af en HTML-fil - som i dette tilfælde er teksten "This is a release note".
Du kan ændre funktionen, så den indlæser en fil, du selv bestemmer navnet på. Det er én måde at indsætte prædefineret indhold på, men den kræver altså en fil.
En anden måde er at sætte tekstfeltets innerHTML-property. Det foregår, så vidt jeg kan se, sådan her:
Jeg har selv lavet en sådan, og den fungerer perfekt. Det du skal gøre er følgende: var cntElement; cntElement=document.getElementById("tbContentElement"); //Dvs. din editor control var selection = cntElement.DOM.selection.createRange(); /*Brug paste html med indholdet af et standard hidden input field*/ selection.pasteHTML(document.forms[0].elements['content'+what].value); tbContentElement.focus();
Dette fungerer for mig, jeg har den fedeste editor som kan skrive til databasen og hente derfra.
Det virker stadig ikke. Min kode bliver fint kørt igennem, men teksten vises ikke. Jeg har bare lavet et hidden felt med et vilkårligt navn, og skrevet min værdi i dets value.
Dvs. var cntElement; DECMD_SELECTALL_onclick(); DECMD_DELETE_onclick(); cntElement=document.getElementById("tbContentElement"); var selection = cntElement.DOM.selection.createRange(); selection.pasteHTML(document.forms[0].elements['content'+what].value); tbContentElement.focus();
Prøv eventuelt at indsætte en tekst konstant, dvs. selection.pasteHTML('Test teksten');
Det skal fungere :)
Måske har det noget med dine internet sikkerheds instillinger. Du kan jo prøve at fidle lidt med det, så det site du sidder og arbejder på kommer med i dint trusted sites, eller i dit intranet.
Prøv eventuelt også at lave en alert imellem hver linie, for at se om den alligevel får kørt al koden.
Du kan også prøve med en try { ... al koden.. } catch(err) { alert(err.message); }
Jeg har testet lidt, men uden meget held. Ved hjælp af alerts kan jeg se, at alle linier kode bliver kørt igennem. Hvis jeg sætter en try catch på, så kommer der en tom fejlmeddelelse.
Mit conElement bliver loadet med et object og jeg har ingen probelemer med at se værdien fra mit hidden felt vha en alert. Jeg kna kun se at problemet kan ligge i createRange eller i pasteHTML. Kan man gøre det anderledes?
Fuck, jeg trykkede på den forkerte knap da jeg ville afvise bobbedudes svar. Jeg skal nok få oprettet et nyt spørgsmål senere, så edutasia og websmith kan få deres point. Bobbedudes, kan jeg evt. få dig til at give to de personer pointene?
Jeg har iøvrigt fået løst problemet. Det viste sig at en variabel docInit skulle sættes til true ellers loades et tomt dokument efter siden er loadet.
Tak for hjælpen allesammen
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.