Newsgroup: it.comp.lang.javascript
Titolo: Focus all'interno del testo

Avrei la necessità di posizionare il mio cursore all'interno di una text 
area ma in un determianto punto della stessa, mi spiego meglio.
Devo fare una text in cui dentro non faccio scrivere direttamente ma tramite 
la pressione di alcuni tasti.
Per esempio ci sarà un tasto "MAX" che scriverà nella text:
"Max( )" ma il cursore si dovrà trovare tra le due parentesi
Oltre a svariati tasti dovrò fare anche quelli con delle freccie per 
spostare avnti o indietro il cursore.
Per tutto questo ho la necessità di fissarer il cursore in un determianto 
punto della text (es. dopo 10 caratteri)
Grazie
-- 
Claudio P. 


Posto del codice direttamente preso dalla wikipedia (quindi accertati di
come puoi riutilizzarlo)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
">
<html xmlns="
http://www.w3.org/1999/xhtml
">
<head>
<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<script type="text/javascript">
var noOverwrite=false;
var alertText;
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var is_gecko = ((clientPC.indexOf('gecko')!=-1) &&
(clientPC.indexOf('spoofer')==-1)
                && (clientPC.indexOf('khtml') == -1) &&
(clientPC.indexOf('netscape/7.0')==-1));
var is_safari = ((clientPC.indexOf('AppleWebKit')!=-1) &&
(clientPC.indexOf('spoofer')==-1));
function insert_tag(tagOpen, tagClose, sampleText) {
 var txtarea = document.forms[0].my_txtarea;
 // IE
 if(document.selection  && !is_gecko) {
  var theSelection = document.selection.createRange().text;
  if(!theSelection) { theSelection=sampleText;}
  txtarea.focus();
  if(theSelection.charAt(theSelection.length - 1) == " "){
// exclude ending space char, if any
   theSelection = theSelection.substring(0, theSelection.length - 1);
   document.selection.createRange().text =
tagOpen + theSelection + tagClose + " ";
  } else {
   document.selection.createRange().text =
tagOpen + theSelection + tagClose;
  }
 // Mozilla
 } else if(txtarea.selectionStart || txtarea.selectionStart == '0') {
   var startPos = txtarea.selectionStart;
  var endPos = txtarea.selectionEnd;
  var scrollTop=txtarea.scrollTop;
  var myText = (txtarea.value).substring(startPos, endPos);
  if(!myText) { myText=sampleText;}
  if(myText.charAt(myText.length - 1) == " "){ // exclude ending space
char, if any
   subst = tagOpen + myText.substring(0, (myText.length - 1)) + tagClose +
" ";
  } else {
   subst = tagOpen + myText + tagClose;
  }
  txtarea.value = txtarea.value.substring(0, startPos) + subst +
    txtarea.value.substring(endPos, txtarea.value.length);
  txtarea.focus();
  var cPos=startPos+(tagOpen.length+myText.length+tagClose.length);
  txtarea.selectionStart=cPos;
  txtarea.selectionEnd=cPos;
  txtarea.scrollTop=scrollTop;
 // All others
 } else {
  var copy_alertText=alertText;
  var re1=new RegExp("\\$1","g");
  var re2=new RegExp("\\$2","g");
  copy_alertText=copy_alertText.replace(re1,sampleText);
  copy_alertText=copy_alertText.replace(re2,tagOpen+sampleText+tagClose);
  var text;
  if (sampleText) {
   text=prompt(copy_alertText);
  } else {
   text="";
  }
  if(!text) { text=sampleText;}
  text=tagOpen+text+tagClose;
  document.infoform.infobox.value=text;
  // in Safari this causes scrolling
  if(!is_safari) {
   txtarea.focus();
  }
  noOverwrite=true;
 }
 // reposition cursor if possible
 if (txtarea.createTextRange) txtarea.caretPos =
document.selection.createRange().duplicate();
}
</script>
<form>
<textarea name="my_txtarea" rows="10" cols="55">
</textarea>
<input type="button" onclick="insert_tag( '<a>', '</a>', 'Ciao' )" />
</form>
</body>
</html>