Voici un morceau de la fonction que j'utilise pour formater mon texte en BBCode.
Cette fonction marche sous Firefox / IE mais pas sous Opera :
Code
function ajoutBBCode(debutTag, finTag, id)
{
var obj = document.getElementById(id), sel;
obj.focus();
if (document.selection && document.selection.createRange){
sel = document.selection.createRange();
if (sel.parentElement()==obj)//si sel est dans obj
sel.text = debutTag+sel.text+finTag;
}
{
var obj = document.getElementById(id), sel;
obj.focus();
if (document.selection && document.selection.createRange){
sel = document.selection.createRange();
if (sel.parentElement()==obj)//si sel est dans obj
sel.text = debutTag+sel.text+finTag;
}
Pour marcher sous Opera, je dois utiliser la méthode document.selection.createRange.text, mais alors ça ne marche plus sous IE car le BBCode s'insère en fin de textarea.
Code
function ajoutBBCode(debutTag, finTag, id)
{
var obj = document.getElementById(id), sel;
obj.focus();
if (document.selection && document.selection.createRange.text){
sel = document.selection.createRange().text;
if (sel.parentElement()==obj)//si sel est dans obj
sel.text = debutTag+sel.text+finTag;
}
{
var obj = document.getElementById(id), sel;
obj.focus();
if (document.selection && document.selection.createRange.text){
sel = document.selection.createRange().text;
if (sel.parentElement()==obj)//si sel est dans obj
sel.text = debutTag+sel.text+finTag;
}
J'ai aussi essayé la méthode document.getSelection pour IE, mais rien n'y fait.
Vous avez une idée, où j'ai besoin de vacances ?