I Inferis Medlem sedan sep. 2000 667 inlägg Frågan 21 mars 2004 20:22 #1 Hur får man denna koden att lägga smileyn i början på textarea om det redan finns något skrivet där? Klickar man nu så hamnar smileyn allra längst ner.
<a href="#" onClick="document.mess.Meddelande.value+='[glad]'; return false;">
<img src="smileys/smile.gif" alt="Glad smilie" border="0"></a>
Peeer Medlem sedan mars 2002 5 907 inlägg Re: Först i textarea, inte sist.
<a href="#" onClick="document.mess.Meddelande.value ='[glad]' + document.mess.Meddelande.value; return false;">
<img src="smileys/smile.gif" alt="Glad smilie" border="0"></a>
Finns säkert smartare sätt, men det här bör fungera iaf.
I Inferis Medlem sedan sep. 2000 667 inlägg Följdfråga..
Om man redan har börjat skriva i fältet så läggs smileyn allra först.
Hur gör man för att lägga den precis där markören är?
P Peter S Medlem sedan dec. 2002 5 483 inlägg <script type="text/javascript">
var cPos,
fObj,
ieC = Boolean(document.selection && document.selection.createRange);
function smilie(str) {
if (ieC && typeof cPos != "undefined") cPos.text = 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["mess"].elements["Meddelande"];
if (ieC) {
fObj.onclick = function() { sC(); }
fObj.onkeyup = function() { sC(); }
fObj.onselect = function() { sC(); }
}
}
</script>
<a href="#" onclick="smilie('[glad]'); return false;">
<img src="smileys/smile.gif" alt="Glad smilie" border="0"></a>
:)
I Inferis Medlem sedan sep. 2000 667 inlägg Jag undrar förresten... Måste javascriptkod ligga mellan head-taggarna?
P Peter S Medlem sedan dec. 2002 5 483 inlägg Nej. Men eftersom koden läses in top-down måste den ligga efter de refererade objekten i skriptet (om det över huvud taget finns sådana referenser d.v.s).
Exempel 1:
<head>
</head>
...
<script type="application/x-javascript">
alert( document.forms["f"] );
</script>
<form name="f"></form>
Exempel 2:
<head>
</head>
...
<form name="f"></form>
<script type="application/x-javascript">
alert( document.forms["f"] );
</script>
:)
I Inferis Medlem sedan sep. 2000 667 inlägg Sorry, fattade inte riktigt det där..
Men tack ska du ha! Ditt script fungerade.
Man kan inte ha två "slutgiltiga" svar nu märkte jag... ;-)
Z znyder Medlem sedan dec. 2002 172 inlägg När jag testade Peter S kod så får jag detta felmeddelande:
'fObj' is null or not an object
Denna rad:
else fObj.value += str;
Varför?
G Guffa Medlem sedan juni 2004 533 inlägg Variabeln fObj har inget värdet. Använder du onload till något annat?