Avatar billede djthomas Nybegynder
21. september 2004 - 12:08 Der er 10 kommentarer og
1 løsning

Smiley insert

Hej.

Jeg har fundet dette script i en anden thread. Men det virker ikke helt som det skal.

Det jeg skal bruge er et script som sætter noget ind der hvor cursor'en er i et textarea og ikke bare til sidst i areaet.

Jeg er ikke en haj til JS men vil egentlig gerne lære det, men det her kan jeg ikke lige regne ud.

Nogen der kan hjælpe for det her script sætter bare en smily til sidst i textareaet og ikke der hvor cursoren er teksten.

        <script type="text/javascript">
            function insertsmilie(smilieface) {
              if (document.postmessage.text.createTextRange && document.postmessage.text.caretPos) {
                var caretPos = document.postmessage.text.caretPos;
                      caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? smilieface + ' ' : smilieface;
                document.postmessage.text.focus();
            } else {
              document.postmessage.text.value+=smilieface;
              document.postmessage.text.focus();
            }
            }

        </script>

<img src="/images/smilys/Ok_man.png" onmousedown="insertsmilie(':-)');">
Avatar billede thomashove Nybegynder
21. september 2004 - 13:31 #1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<BODY>
<form name="formname">

<script type="text/javascript">

function storeCaret ()
{
  if (formname.textarea.createTextRange)
    formname.textarea.caretPos = document.selection.createRange().duplicate();

}

function insertAtCaret(textArea,text) {

    if(textArea.createTextRange && textArea.caretPos)
    {
   
        var caretPos = textArea.caretPos;
        caretPos.text = caretPos.text.charAt(caretPos.text.length  - 1) == ' ' ? text : text ;
        textArea.focus();
    }
    else
    {
        textArea.value = text;
    }
}



</script>


<textarea name="textarea" onselect="storeCaret();" onclick="storeCaret();" onkeyup="storeCaret();"> </textarea>

<img src="/images/smilys/Ok_man.png" onmousedown="insertAtCaret(document.formname.textarea,':-)');">

</form>

</BODY>
</HTML>
Avatar billede djthomas Nybegynder
21. september 2004 - 13:45 #2
Det virker perfekt i IE men i Firefox sletter den alt når man klikker
Avatar billede thomashove Nybegynder
21. september 2004 - 13:50 #3
ak ak - du sagde intet om fler-browserkompatitet.... ;-)

Kigger på det snarest muligt.
Avatar billede djthomas Nybegynder
21. september 2004 - 13:55 #4
he he nej det gjorde jeg godt nok ikke - men er det ikke en uskrevet selvfølge i dag? ;-)

Jeg vil godt være fræk at udlove endnu flere point hvis du kan fixe det godt og ikke inden for vildt langt tid .:-)
Avatar billede thomashove Nybegynder
21. september 2004 - 14:07 #5
har udvidet en af funktionerne - det virker i IE & Netscape - har desværre ikke installeret Firefox pt. så det må du nok lige teste...


function insertAtCaret(textArea,text) {

    if(textArea.createTextRange && textArea.caretPos)  //IE
    {
   
        var caretPos = textArea.caretPos;
        caretPos.text = caretPos.text.charAt(caretPos.text.length  - 1) == ' ' ? text : text ;
        textArea.focus();
    }
    else if ( textArea.setSelectionRange ) //NETSCAPE
    {
        var len = textArea.selectionEnd;
        textArea.value = textArea.value.substr( 0, len ) + text + textArea.value.substr( len );
        textArea.setSelectionRange(len+text.length,len+text.length)
    }
    else
    {
        textArea.value += text;
    }
}
Avatar billede djthomas Nybegynder
21. september 2004 - 14:12 #6
Det virker også i Firefox nu. jeg har givet dig 200P nu er det riemligt?

jeg er en glad mand nu .-)
Avatar billede thomashove Nybegynder
21. september 2004 - 14:16 #7
200 pt. .... rolig nu ... 100 er mere end rigeligt - så svært var det jo heller ikke ;-)
Avatar billede djthomas Nybegynder
21. september 2004 - 14:19 #8
Jammen hvis det ikke er svære kan du så ikke komme med et fedt sted at lærer det skidt - synes der kommer meget bras op via google når man søger på tutorials
Avatar billede thomashove Nybegynder
21. september 2004 - 14:28 #9
goder sider med eksempler er der mange af:

http://hjem.get2net.dk/ahome/
http://www.html.dk/scripts/javascript/
http://devedge.netscape.com/central/javascript/

bare for at nævne nogle. Ellers plejer jeg bare at søge på google med et par keywords eller tre. F.eks. løste jeg den sidste af dine problmer ved at søge med ordene "textarea caretPos netscape"
Avatar billede thomashove Nybegynder
21. september 2004 - 23:01 #10
fandt du nogle goder sider om Javascript?
Avatar billede olebole Juniormester
22. september 2004 - 17:48 #11
<ole>

Måden, man normalt gør den slags på, er først at udskifte, når teksten skal printes til skærmen. Er det en tekst, der skal i database, skifter du altså ikke noget, når den lægges i DB, men når den hentes derfra.
Det er langt enklere at have med at gøre - og så er det _altid_ X-browser ... uanset, hvilke browsere der måtte komme  ;o)

/mvh
</bole>
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