Originariamente inviato da Urbanus 
ciao 
allora dovrei fare una cosa del genere:
sto costruendo un piccolo forum per il mio sito...
ho una pagina per l' inserimento del topic con i vari campi necessari tra cui la text area...
sotto di questa ho messo una tabellina con le varie faccine e il relativo codice per inserirle nella textare una volta che ci si clicca sopra:
il form si chiama "form_ins"
	Codice PHP:
	
<script language="javascript">
  function aggiungi(y)
  {
 espressione=document.form_ins.testo.value;
  new_espressione=espressione + y;
  document.form_ins.testo.value=new_espressione;
  }
  </script> 
 
e questo sulle immagini:
	Codice PHP:
	
[img]../img/imfo/fo1.gif[/img] 
 
ora vorrei che le faccine fossero in un popup chiamato "popsm.php"
in modo che le faccine non appesantiscano la pagina con il form (visto che non sono indispensabili)
come devo modificare il codice??? 
grazie 
			
		 
	 
 
nella pagina popup (dove inserirai gli smile 
 ) inserisci lo stesso codice che adesso era nel form cosi modificato:
	codice:
	<script language="javascript">
  function aggiungi(y)
  {
 espressione=window.opener.document.form_ins.testo.value;
  new_espressione=espressione + y;
  window.opener.document.form_ins.testo.value=new_espressione;
  }
  </script>
 
e il resto non cambia.
oppure ti propongo una versione plus, la differenza stà che inserisce lo smile nella posizione esatta dove si trova il cursore e non alla fine del contenuto della textarea come nella tua versione.
	codice:
	function aggiungi(insert){
	textEl = window.opener.document.form_ins.testo
if (textEl.createTextRange && textEl.caretPos) {
		// MSIE
		var caretPos = textEl.caretPos;
		caretPos.text =	caretPos.text.charAt(caretPos.textEl.length - 1) == ' ' ? textEl + ' ' : textEl;
	} else if(textEl.selectionStart && textEl.setSelectionRange) {
		// Mozilla 1.3+
		var val = textEl.value;
		var cpos = textEl.selectionStart;
		var fpos = cpos + textEl.length;
		var before = val.substr(0,cpos);
		var after = val.substr(cpos, val.length);
		var aspace = after.charAt(0) == ' ' ? "" : " ";
		var bspace = before.charAt(before.length) == ' ' ? "" : " ";
		textEl.value = before + bspace + insert + aspace + after;
		textEl.setSelectionRange(cpos,fpos); // set cursor pos to end of text
		textEl.focus();
	} else {
		textEl.value  = textEl.value + insert; // otherwise just append
		textEl.focus()
	}
	return true;
}
 
il resto non cambia vedi tu quale preferisci.
 
 
P.S. X la versione plus ho eseguito delle modifiche al volo pertanto non l'ho testa per problemi a disposzione!!!!!!!!