Avatar billede obhat Nybegynder
25. juli 2007 - 11:55 Der er 11 kommentarer og
1 løsning

Indsætte en smiley

Hej eksperter :-)
Jeg forsøger at indsætte en smiley i en tekst, men denne kode her sletter alt hvad der i forvejen står i formularfeltet.
Kan det ændres så smileyen sættes ind hvor cursoren står og gerne samtidig lukker popup vidue ved klik.

<div onclick="top.opener.document.getElementsByName('besked')[0].value=':-)'"><img border="0" src="image/smiley1.gif" width="19" height="19"></a></div>
Avatar billede thesurfer Nybegynder
25. juli 2007 - 13:03 #1
I stedet for "=" skal det være "+=":

<div onclick="top.opener.document.getElementsByName('besked')[0].value+=':-)'"><img border="0" src="image/smiley1.gif" width="19" height="19"></a></div>
Avatar billede thesurfer Nybegynder
25. juli 2007 - 13:04 #2
Jeg kan lige så godt smide et svar.. :-)
Avatar billede obhat Nybegynder
25. juli 2007 - 13:18 #3
Fint. tak :)
Avatar billede obhat Nybegynder
25. juli 2007 - 20:59 #4
Dog lige en ting. kan man sætte cursor onfocus i formularen igen efter klik på smiley?
Avatar billede thesurfer Nybegynder
25. juli 2007 - 23:18 #5
Du kan gøre det sådan her:

<div onclick="b=top.opener.document.getElementsByName('besked')[0];b.value+=':-)';b.focus();"><img border="0" src="image/smiley1.gif" width="19" height="19"></a></div>

Hvis cursoren skal placeres et bestemt sted, skal der lige et par linier til..

Se f.eks. (især kommentarene): http://parentnode.org/javascript/working-with-the-cursor-position/
Avatar billede obhat Nybegynder
26. juli 2007 - 12:05 #6
Nu har jeg gjort sådan her, virker næsten hver gang, men nogen gange springer markøren helt op til start af formularfeltet?

onclick="b=top.opener.document.getElementsByName('besked')[0];b.value+=':-)';window.close();b.focus();"
Avatar billede thesurfer Nybegynder
26. juli 2007 - 20:49 #7
Hvor skal markøren stå? Sidst i feltet?
Avatar billede obhat Nybegynder
27. juli 2007 - 07:45 #8
Ikke sidst i feltet, men efter sidste tegn.
Avatar billede thesurfer Nybegynder
27. juli 2007 - 10:07 #9
Med "efter sidste tegn" går jeg ud fra, at det er sidste indsatte tegn..

Eksempel..

Man skriver abcdef, og placerer markøren i mellem "c" og "d", og indsætter smiley'en ":-)".

Nu skulle der gerne stå "abc:-)def", og markøren skulle stå mellem ")" og "d".

Korrekt?
Avatar billede thesurfer Nybegynder
27. juli 2007 - 10:38 #10
Jeg har prøvet mig frem, og kan få det til at virke i Mozilla FireFox 2.0.0.4 ("FF") og Opera v9.21, men ikke i Internet Explorer 6.0 SP2 ("IE").

Det er vist fordi IE smider positionen væk, hvis man klikker på et element, der ikke er en knap.

Følgende kode virker i FF og Opera, med klik på et div (onclick-kode):
http://pastebin.parentnode.org/78

Det virker fint i FF, Opera og IE hvis man bruger en knap i stedet:

<input type="button" value="buttontest" onclick="b=document.getElementById('besked');insertAtCaret(b,':-)');">
Avatar billede thesurfer Nybegynder
27. juli 2007 - 10:39 #11
Som man kan læse her på nedenstående sider, er der problemer med Internet Explorer og fokus:

http://parentnode.org/javascript/working-with-the-cursor-position/

http://www.laviska.com/view.php?id=138
Avatar billede thesurfer Nybegynder
27. juli 2007 - 10:46 #12
Prøv med koden i boksen i bunden af side, og ikke toppen af siden..
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