Avatar billede hmmhelpinghmm Nybegynder
11. juli 2004 - 17:43 Der er 30 kommentarer og
1 løsning

Indsæt der hvor curseren er!?

Jeg har nu fået lavet smileys til mit mailsystem. Problemet er, at når man trykker på smileyen, så indsættes fx :) men til sidst i boksen, kan man ikke få den til at indsættes der hvor curseren er, altså den der følger med når man skriver?

JEg kan tydeligt se hvor det er galt, men kan ikke se hvordan det skal ændres!

Samtidig hvordan får man en hånd som curser når du flytter over en smiley?

    <td width="45" height="40"><img src='http://www.friendscommunity.1go.dk/smileys/pil.gif' onclick='document.getElementById("besked").value +="*p*"' ; width="15" height="15">
Avatar billede skovenborg Nybegynder
11. juli 2004 - 17:46 #1
Avatar billede mm12010 Nybegynder
11. juli 2004 - 17:46 #2
Avatar billede mm12010 Nybegynder
11. juli 2004 - 17:46 #3
;-)
Avatar billede skovenborg Nybegynder
11. juli 2004 - 17:47 #4
det med hånden er godt nok ikke lige med. Men du kan prøve:
<td width="45" height="40" style="cursor:pointer;cursor:hand;"><img src='http://www.friendscommunity.1go.dk/smileys/pil.gif' onclick='document.getElementById("besked").value +="*p*"' ; width="15" height="15">

hvis det er på den måde du mener...
Avatar billede skovenborg Nybegynder
11. juli 2004 - 17:49 #5
hva' - hvem er den frække karl på skovenborg.1go.dk som stjæler mine scripts... skulle forbydes ;-)
Avatar billede mm12010 Nybegynder
11. juli 2004 - 17:51 #6
ja - oven i hovedet med en hammer skulle han slå's ;-)
Avatar billede hmmhelpinghmm Nybegynder
11. juli 2004 - 17:53 #7
JEg kan ikke få det til at virke, hvad skal sættes ind så den paster der hvor curseren er?
Avatar billede hmmhelpinghmm Nybegynder
11. juli 2004 - 17:56 #8
har gjort sådan men virker ikke:

<head>
<script language="javascript">
<!--

function insertText(frmElm,text) {
    if (frmElm.selectionEnd != undefined) {cursorpos=frmElm.selectionEnd+text.length;frmElm.value = strInsert(frmElm.value,text,frmElm.selectionEnd);}
    else if (document.selection && fokus) {r = document.selection.createRange();r.text = text;}
    else frmElm.value += text;
}
//-->
</script>
</head>
<form>
<textarea name="felt" onfocus="fokus = true;" onblur="fokus = false;">Her er noget tekst i et textarea</textarea>

<input type="button" value=":-)" onmousedown="insertText(this.form.felt,':-)');" onmouseup="this.form.felt.focus();mozPlaceCursor(this.form.felt);" />
</form>
Avatar billede skovenborg Nybegynder
11. juli 2004 - 17:56 #9
nåda, troede ellers det stod klart nok (selvom det ser lidt rodet ud). Men du kan se et eksempel fra koden:
<form>
<textarea name="felt" cols="30" rows="5" onfocus="fokus = true;" onblur="fokus = false;">Her er noget tekst i et textarea</textarea>
<input type="button" value=":-)" onmousedown="insertText(this.form.felt,':-)');" onmouseup="this.form.felt.focus();mozPlaceCursor(this.form.felt);" />
</form>
og så ellers brug den javascript-kode som står på siden.
Avatar billede skovenborg Nybegynder
11. juli 2004 - 17:57 #10
du skal jo have det hele med:
var fokus = false; // Required in the insertText function - used because of IE
var cursorpos; // Required for mozPlaceCursor
/**
* Inserts text in a form-element
* @param frmElm A form-element, for instance a textarea
* @param text A string with the text which should be inserted
*/
function insertText(frmElm,text) {
    if (frmElm.selectionEnd != undefined) {
        cursorpos=frmElm.selectionStart+text.length;
        frmElm.value = frmElm.value.substring(0,frmElm.selectionStart)+text+frmElm.value.substring(frmElm.selectionEnd);
    } // For mozilla
    else if (document.selection && fokus) {r = document.selection.createRange();r.text = text;} // For IE
    else frmElm.value += text; // For everyone else
}
/**
* Places the cursor in a certain position.
* The variable cursorpos is required
* Mozilla only (or other gecko-browsers)
* @param frmElm The form-element
*/
function mozPlaceCursor(frmElm) {
    if (frmElm.selectionEnd != undefined && cursorpos != undefined) {
        frmElm.setSelectionRange(cursorpos,cursorpos);
    }
}
Avatar billede hmmhelpinghmm Nybegynder
11. juli 2004 - 17:59 #11
der opstod en fejl på siden!
Avatar billede skovenborg Nybegynder
11. juli 2004 - 18:00 #12
har forresten glemt at opdatere den kode som står på selve siden - men det er kun den ovenstående du skal bruge ;-)
Avatar billede skovenborg Nybegynder
11. juli 2004 - 18:02 #13
det lyder lidt mærkeligt - det fungerer vel på de to sider vi har vist?

Har du mulighed for at vise den side du prøver det på eller den kode du bruger.
Avatar billede hmmhelpinghmm Nybegynder
11. juli 2004 - 18:02 #14
ja deter den jeg bruger, virker ik!
Avatar billede hmmhelpinghmm Nybegynder
11. juli 2004 - 18:02 #15
Jeg laver det på en ren side!

Dette er HELE koden:

<head>
<script language="javascript">
<!--

var fokus = false; // Required in the insertText function - used because of IE
var cursorpos; // Required for mozPlaceCursor
/**
* Inserts text in a form-element
* @param frmElm A form-element, for instance a textarea
* @param text A string with the text which should be inserted
*/
function insertText(frmElm,text) {
    if (frmElm.selectionEnd != undefined) {
        cursorpos=frmElm.selectionStart+text.length;
        frmElm.value = frmElm.value.substring(0,frmElm.selectionStart)+text+frmElm.value.substring(frmElm.selectionEnd);
    } // For mozilla
    else if (document.selection && fokus) {r = document.selection.createRange();r.text = text;} // For IE
    else frmElm.value += text; // For everyone else
}
/**
* Places the cursor in a certain position.
* The variable cursorpos is required
* Mozilla only (or other gecko-browsers)
* @param frmElm The form-element
*/
function mozPlaceCursor(frmElm) {
    if (frmElm.selectionEnd != undefined && cursorpos != undefined) {
        frmElm.setSelectionRange(cursorpos,cursorpos);
    }
}
//-->
</script>
</head>
<form>
<textarea name="felt" cols="30" rows="5" onfocus="fokus = true;" onblur="fokus = false;">Her er noget tekst i et textarea</textarea>
<input type="button" value=":-)" onmousedown="insertText(this.form.felt,':-)');" onmouseup="this.form.felt.focus();mozPlaceCursor(this.form.felt);" />
</form>
Avatar billede hmmhelpinghmm Nybegynder
11. juli 2004 - 18:09 #16
Jo nu virker det, ændrede intet! :)

Hvorfor skal dette stå der?

onmouseup="this.form.felt.focus();mozPlaceCursor(this.form.felt);"
Avatar billede skovenborg Nybegynder
11. juli 2004 - 18:10 #17
for at sætte fokus i feltet igen bagefter - men du kan godt fjerne dem hvis du ikke synes det er nødvendigt. Fandt faktisk en fejl i scriptet i IE5, så du skal skrive:
var fokus = false; // Required in the insertText function - used because of IE
var cursorpos; // Required for mozPlaceCursor
/**
* Inserts text in a form-element
* @param frmElm A form-element, for instance a textarea
* @param text A string with the text which should be inserted
*/
function insertText(frmElm,text) {
    if (typeof frmElm.selectionEnd == "number") {
        cursorpos=frmElm.selectionStart+text.length;
        frmElm.value = frmElm.value.substring(0,frmElm.selectionStart)+text+frmElm.value.substring(frmElm.selectionEnd);
    } // For mozilla
    else if (document.selection && fokus) {r = document.selection.createRange();r.text = text;} // For IE
    else frmElm.value += text; // For everyone else
}
/**
* Places the cursor in a certain position.
* The variable cursorpos is required
* Mozilla only (or other gecko-browsers)
* @param frmElm The form-element
*/
function mozPlaceCursor(frmElm) {
    if (typeof frmElm.selectionEnd == "number" && cursorpos != undefined) {
        frmElm.setSelectionRange(cursorpos,cursorpos);
    }
}
Avatar billede hmmhelpinghmm Nybegynder
11. juli 2004 - 18:16 #18
okay takker, :)
men hvad når jeg skal bruge det på et billede, kan den godt finde ud af det med onmousedown og onmouseup?
Avatar billede hmmhelpinghmm Nybegynder
11. juli 2004 - 18:19 #19
??
Avatar billede hmmhelpinghmm Nybegynder
11. juli 2004 - 18:25 #20
er du der stadig skovenborg, hvad gør jeg når det er til et billede?
Avatar billede mm12010 Nybegynder
11. juli 2004 - 20:36 #21
du burde ikke gøre den store forskel om det er et billede eller en knap
Avatar billede hmmhelpinghmm Nybegynder
11. juli 2004 - 20:45 #22
jo for på billede kan u ikke bruge onmousedown og -up
Avatar billede mm12010 Nybegynder
11. juli 2004 - 21:12 #23
så du gøre sådan:
onclick="insertText(this.form.felt,':-)');this.form.felt.focus();mozPlaceCursor(this.form.felt);"
Avatar billede skovenborg Nybegynder
11. juli 2004 - 21:26 #24
onmousedown og onmouseup burde da også virke på billeder - og undskyld jeg ikke svarede før, jeg var lige ud at spise ;-)
Avatar billede hmmhelpinghmm Nybegynder
11. juli 2004 - 21:34 #25
Prøv selv her, tryk på billedet, hold øje med statuslinjen!

www.friendscommunity.1go.dk/h.php
Avatar billede skovenborg Nybegynder
11. juli 2004 - 21:38 #26
hov, tror jeg ved hvad du mener. Det virker ikke her pga. this.form som ikke virker på billeder, da de ikke er direkte en del af nogen form. Så derfor skal du skrive:
<img src="billede.png" onmousedown="insertText(document.forms[0].felt,':-)');" onmouseup="document.forms[0].felt.focus();mozPlaceCursor(document.forms[0].felt);" />

eller i stedet for forms[0] kan du godt erstatte det med form-navnet (hvis du fx har flere forms på siden)
Avatar billede hmmhelpinghmm Nybegynder
11. juli 2004 - 21:39 #27
jaaa, jeg satte ikke rigtigt billede på men se det virker, i kender linket!

SVAR skovenborg
Avatar billede hmmhelpinghmm Nybegynder
11. juli 2004 - 21:43 #28
SMID ET SVAR OG TUSIND MANGE TAK! :)
Avatar billede skovenborg Nybegynder
11. juli 2004 - 21:45 #29
skal ske :-)
Avatar billede hmmhelpinghmm Nybegynder
11. juli 2004 - 21:46 #30
Værsgo, og endnu engang mange tusind tak!! :)


Så kan jeg endelig komme videre efter flere timers nussearbejde!

TAK!
Avatar billede skovenborg Nybegynder
11. juli 2004 - 21:46 #31
og tak for points :-)

men undskyld den lange ventetid... har jo andre gøremål en gang i mellem ;-)
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