webForumDet fria alternativet

Lägga till text i Textarea där markören befinner sig

1 svar · 1 080 visningar · startad av iLife

iLifeMedlem sedan sep. 200319 inlägg
#1

Har ett problem, jag använder följande kod:
function addText(strText) {
document.formMail.fldMessage.value = document.formMail.fldMessage.value + strText;
}
För att lägga till en viss text. Men problemet är den hamnar sist, vilket är självklart om man kollar på koden. Finns det någon annan funktion/sätt som gör att texten hamnar där markören befinner sig?

Peter SMedlem sedan dec. 20025 483 inlägg
#2

En wF-anpassad lösning:

<script type="text/javascript">

var cPos,
    fObj,
    ieC = Boolean(document.selection && document.selection.createRange);

function smilie(str) {
    if (ieC) {
	if (typeof cPos != "undefined")
	    cPos.text = str;
	else
	    fObj.value = str;
    }

    else if (typeof window.HTMLTextAreaElement != "undefined")
	fObj.value = fObj.value.substring(0, fObj.selectionStart) + str + fObj.value.substring(fObj.selectionEnd);

    else fObj.value += str;
}

function sC() {
    cPos = document.selection.createRange().duplicate();
}

window.onload = function() {
    fObj = document.forms["vbform"].elements["message"];

    if (ieC) {
	fObj.onclick  = function() { sC(); }
	fObj.onkeyup  = function() { sC(); }
	fObj.onselect = function() { sC(); }
    }
}

</script>

<a href="#" onclick="smilie(':)'); return false;">smilie</a>

<form name="vbform">
	<textarea cols="20" rows="5" name="message"></textarea>
</form>

:)

131 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
128 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)