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!!!!!!!!