Ecco qui l'ho provato è funziona su firefox
Codice:
function sel()
{
obj=document.getElementById('codice');
if(obj.selectionEnd)
{
var from=obj.selectionStart;
var to=obj.selectionEnd;
var selText=obj.value.substring(from,to);
}
var txt = obj.value+'';
txt = txt.replace(selText, '<b>'+selText+'</b>');
obj.value = txt;
}
</script>
<input type="button" onclick="sel()" value="selezionato" />
<form name="form">
<textarea id="codice"></textarea>
</form>
le info le ho trovate qui
questo invece funziona con IE
Codice:
function ie()
{
var obj = document.getElementById('codice');
var txt = '';
if (window.getSelection)
{
txt = window.getSelection();
}
else if (document.getSelection)
{
txt = document.getSelection();
}
else if (document.selection)
{
txt = document.selection.createRange().text;
}
else return;
var txte = obj.value+'';
txte = txte.replace(txt, '<b>'+txt+'</b>');
obj.value = txte;
}
Resta però il problema che se si selezionano pochi caratteri con il replace potrebbe sostituire una parte diversa(se trova una sottostringa identica prima di quella selezionata).
Con firefox puoi utilizzare le variabili from e to ma con IE...non saprei!!!