Avatar billede killer_r Nybegynder
15. juni 2002 - 17:24 Der er 18 kommentarer og
1 løsning

HTML-editor med smileys

Jeg arbejder på en "HTML-editor" på min side:
www.sejs.dk/diverse/hadsten/NewNews.htm
Men der er et problem...
Hvorfor sletter den alt det der er blevet skrevet når man indsætter en smiley?
Hvordan retter jeg det så når man vælger en smiley bliver den skrevet efter teksten...
Jeg har sat den til at skrive med "Verdana", men hvorfor skrifttypen en gang imellem og går tilbage til standart-skrifttypen?

På forhånd tak
Killer_R
Avatar billede fireblast Nybegynder
16. juni 2002 - 03:03 #1
Der er ingen smileys at indsætte?..
Avatar billede killer_r Nybegynder
16. juni 2002 - 14:16 #2
Tryk på smileyen i toppen og klik på en af dem der kommer frem...
Avatar billede Slettet bruger
17. juni 2002 - 22:13 #3
Tja... Der kommer nu heller ingen Smileys frem (IE5)! :)
Avatar billede killer_r Nybegynder
18. juni 2002 - 00:52 #4
Det skulle der da gerne... Ellers er der da noget helt galt...
Den skulle gerne vise et div med smileys... SE KODEN!!!
Avatar billede Slettet bruger
18. juni 2002 - 17:40 #5
Du skal nok ikke lave "SmileysTop" og "SmileysBody" til en div, men snarere til en <span> med class="SmileyTop/Body"!

Derudover skal du dette sted i din kode:

frames.editor.document.write(skriv);

... skrive dette istedet:

frames.editor.document.execCommand("InsertImage", false, skriv);

Desuden har du faktisk en masse unødvendig kode, men det, jeg har skrevet, burde nu løse dit umiddelbare problem. Men du bør nok få en til at tynde lidt ud i din kode!
Avatar billede killer_r Nybegynder
22. juni 2002 - 12:26 #6
Hvad er det for noget unødvendig kode???
Avatar billede killer_r Nybegynder
22. juni 2002 - 12:33 #7
phoenixv >>> Det ser ikke ud til at det virker...
Hvad kan der være galt???
Avatar billede Slettet bruger
22. juni 2002 - 12:34 #8
Tja, din AddSmiley()-funktion har en masse replaces, der kunne undgås med en smule trylleri, fx:

skriv = "<img src=\"Billeder/Smiley_" + mode + ".gif\">";

Så skal du bare sørge for, at mode er lig med filnavnet på din smiley. Men så behøver du kun én linje frem for 10!

Derudover kan du samle din AddBold()- og AddItalic()-funktioner til én, der så bare skal kaldes på en anden måde:

function ex() {
com = ex.arguments[0];
if (ex.arguments.length == 1)
document.editor.document.execCommand(com);
else {
par = ex.arguments[1];
if (par != null && par != 'undefined')
document.editor.document.execCommand(com, false, par);
}
document.editor.focus();
}

Hvis du vil gøre skriften fed, skal du så kalde en med:

ex("Bold");

Kursiv vil tilsvarende være:

ex("Italic");

For at gøre skrifttypen til Arial kan du kalde funktionen med:

ex("FontName", "Arial");
Avatar billede Slettet bruger
22. juni 2002 - 12:39 #9
Prøv lige at give Smileys et højere z-index...

Jeg vender tilbage snart, men jeg skal lige have noget frokost! :)
Avatar billede Slettet bruger
22. juni 2002 - 13:02 #10
Ja, problemet er, at iframen altid vil ligge oven på din div, så smileysne bliver faktisk vist, de ligger bare bag ved editor-framen!
Du bliver nok nødt til at finde et andet sted at vise de smileys; ellers må du åbne et fullscreen-vindue og resize det.
Avatar billede killer_r Nybegynder
22. juni 2002 - 14:55 #11
Hvordan gør de så på f.eks. hotmail hvor de har lavet det...???
Avatar billede killer_r Nybegynder
22. juni 2002 - 16:16 #12
Jeg har nu prøvet hvor jeg udskifter iframen med et div...
Men nu er det eneste problem så at jeg skal markere noget tekst før smileyen kommer det rigtige sted...
Nogen ideer til hvordan jeg kan fixe det...??? :)
Avatar billede Slettet bruger
22. juni 2002 - 19:14 #13
Du skal ikke udskifte iframen, for så forsvinder idéen med document.designMode jo!
Du skal derimod placere dine smileys et andet sted end lige ovenpå iframen!
Avatar billede killer_r Nybegynder
22. juni 2002 - 23:09 #14
Men smileyene skal jo vises i "editoren"... Hvordan skulle det ellers kunne laves?
Men prøv lige at tjekke det med div'et!
Avatar billede Slettet bruger
23. juni 2002 - 13:10 #15
Det vil ikke virke med en div, da man så ikke kan skrive i feltet.

Og hvad er der galt med at placere Smileys lige til venstre for iframen? Det er da endnu bedre, for så går de ikke ind over den tekst, man har skrevet!
Avatar billede killer_r Nybegynder
29. juni 2002 - 16:04 #16
Undskyld at jeg har været væk i noget tid...

Men hvis jeg nu sætter contentEditable="true" i div'et er det muligt at skrive i det...

Kan det ikke bruges?
Avatar billede killer_r Nybegynder
15. august 2002 - 08:09 #17
Hvad mener du med "til venstre for iframen"...???
Avatar billede killer_r Nybegynder
15. oktober 2002 - 23:33 #18
Lukker
Avatar billede Slettet bruger
21. oktober 2002 - 08:29 #19
Undskyld, jeg har ikke modtaget mails fra dette spm af én eller anden grund!
Jo contentEditable vil virke på div'en. Til gengæld vil det udelukke alle andre browsere end IE5.5+, og det er jo en betydelig del!
"Til venstre for iframen": Placér smileysne i en boks til venstre for editoren. Så er de hele tiden synlige, og det er nu engang nemmere for brugeren, hvis han/hun skal indsætte flere på én gang!
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