webForumDet fria alternativet

Klistra in i aktuellt textarea.

5 svar · 444 visningar · startad av solbulle

solbulleMedlem sedan mars 20015 287 inlägg
#1

Jag har denna kod som klistrar in "html/forum"-taggar i en textarea.
Nu har jag det så fiffigt att jag har två eller tre textareor på sidan så jag skulle vilja göra det lite dynamiskt, att koden klistras in i den textarea man står i. (Där markören är.)

Lite heta tips?

function format(format) {
                                      if (document.PostTopic.artikel.createTextRange && document.PostTopic.artikel.caretPos) {
                                              var caretPos = document.PostTopic.artikel.caretPos;
                                              caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? format + ' ' : format;
                                              document.PostTopic.artikel.focus();
                                      } else {
                                              document.PostTopic.artikel.value+=format;
                                              document.PostTopic.artikel.focus();
                                      }
                      }

</SCRIPT>

<a href="Javascript:format('[i] [/i]')" tabindex="-1"><img src="images/icon_editor_italicize.gif" width="22" height="22" alt="italic" border="0">
Jesper TMedlem sedan nov. 20017 144 inlägg
#2

Kanske så här:

<html>
<head>
<script language="JavaScript">
<!--
function varEjag() {
 minPos = document.selection.createRange();
}
function klistrain(objektet){
 minPos.text = objektet;
}
//-->
</script>

</head>
<body >
<a href="javascript:;" onclick="klistrain(':-)');">:-)</a> <a href="javascript:;" onclick="klistrain(';-)');">;-)</a> 
<a href="javascript:;" onclick="klistrain(':-o');"> :-o</a> <a href="javascript:;" onclick="klistrain(':-(');">:-(</a><br>
<form name="" method="post" action="">
  <textarea name="artikel1" onclick="varEjag();"></textarea>
  <textarea name="artikel2" onclick="varEjag();"></textarea>
  <textarea name="artikel3" onclick="varEjag();"></textarea>
</form>
</body>
</html>
solbulleMedlem sedan mars 20015 287 inlägg
#3

Helt enkelt lysande!

Kalas. :)

JojoxxMedlem sedan juni 20004 308 inlägg
#4

Finslipar lite.

<script language="JavaScript">
<!--
var minPos=false;
document.onkeydown=function(){
 minPos = document.selection.createRange();
}
function varEjag() {
 minPos = document.selection.createRange();
}
function klistrain(objektet){
 if(minPos){ minPos.text += objektet }
}
//-->
</script>

Först definierar vi variabeln minPos och detekterar din i klistrain så att vi inte får scriptfel om man försöker att klistra in innan vi valt en textarea. Sedan detekterar vi knapptryckningar så man kan stoppa in smilie'n mitt i en text man redigerar. Tyvärr detekteras inte piltangenterna <- och -> av onkeydown. Glöm ej += istället för = i klistrain.

solbulleMedlem sedan mars 20015 287 inlägg
#5

Ännu mer lysande.

Jag fick, för den första versionen i alla fall, ändra så att funktionen "varEjag" kallades både vid onchang samt vid onclick annars fungerade det inte alltid.

Ska testa denna uppdaterade version.

PalleMedlem sedan apr. 20003 174 inlägg
#6

Oh! Nice one!
Har letat efter en liknande funktion. :birp

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