View Full Version : [javascript] Aggiungere dati in una textarea
frizzo28
31-12-2005, 12:26
Ciao a tutti sto creando un guestbook con javascript e php solo che ho il seguente problema: Vorrei inserire il codice dellle varie faccien nel punto dove sta il puntatore e non alla fine della textarea io ho usato na cosa del genere document.guest.testo.value=document.guest.testo.value+':)' ad esempio però così mi aggiunge :) alla fine della textarea come fare ad inserirlo nel punto dove c'è il cursore????? GRAzie a tutti
Dallo javascript modificato dell'IPB forum:
(devi sostituire "Post" con il "name" della tua textarea: <textarea name="qualchenome" ecc></textarea>)
//--------------------------------------------
// GENERAL INSERT FUNCTIONS
//--------------------------------------------
// sel: selection
// Gecko: Array(selected text, selection start, selection end)
// IE: Array(selected text, TextRange object)
// Other: false
// val: text to insert
function _insertAtSelection(sel, val)
{
var obj_ta = (dom)? document.getElementsByName('Post')[0]: document.all.Post;
obj_ta.focus();
if(sel.length > 2){
var txt = obj_ta.value.substring(0, sel[1]);
txt += val;
txt += obj_ta.value.substring(sel[2], obj_ta.value.length);
obj_ta.value = txt;
if(obj_ta.setSelectionRange){
sel[2] = sel[1] + val.length;
if(insertMode == 1 || !sel[0].length)
obj_ta.setSelectionRange(sel[2], sel[2]);
else
obj_ta.setSelectionRange(sel[1], sel[2]);
}
}
else if(sel.length == 2){
var len = sel[1].text.length;
sel[1].text = val;
if(insertMode != 1 && len)
sel[1].moveStart('character', -val.length);
sel[1].select();
}
else {
obj_ta.value = val;
}
obj_ta.focus();
}
// Returns a selection as described above
function _getTASelection()
{
var sel;
var obj_ta = (dom)? document.getElementsByName('Post')[0]: document.all.Post;
obj_ta.focus();
if(obj_ta.setSelectionRange){
var s = obj_ta.selectionStart;
var e = obj_ta.selectionEnd;
sel = obj_ta.value.substring(s, e);
// Cut off blank at end
if(s < e && sel.charAt(sel.length - 1) == ' '){
sel = sel.substring(0, sel.length - 1);
e--;
}
return new Array(sel, s, e);
}
else if(!dom && !window.opera && !is_mac){
sel = document.selection;
var rng = sel.createRange();
if((sel.type == "Text" || sel.type == "None") && rng != null){
rng.collapse;
// Cut off blank at end
if(rng.text.length > 1 && rng.text.charAt(rng.text.length - 1) == ' ')
rng.moveEnd('character', -1);
rng.select();
return new Array(rng.text, rng);
}
}
return new Array('');
}
Per trovare che browser si sta usando:
var is_ie = ((myAgent.indexOf("msie") != -1) && (myAgent.indexOf("opera") == -1));
var is_nav = ((myAgent.indexOf('mozilla')!=-1) && (myAgent.indexOf('spoofer')==-1)
&& (myAgent.indexOf('compatible') == -1) && (myAgent.indexOf('opera')==-1)
&& (myAgent.indexOf('webtv') ==-1) && (myAgent.indexOf('hotjava')==-1));
var is_win = ((myAgent.indexOf("win")!=-1) || (myAgent.indexOf("16bit")!=-1));
var is_mac = (myAgent.indexOf("mac")!=-1);
var dom = (document.getElementById && !document.all);
Per quello che so questo funziona con i browser basati su gecko e con IE, con gli altri non funziona.
frizzo28
31-12-2005, 13:08
sel, val a questi due valori cosa sono? uno suppongo il testo da aggiungere e l'altro? Grz :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.