CreateTextRange toujours a undefined

RMOINAS Messages postés 98 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 16 septembre 2006 - 12 oct. 2005 à 23:27
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 14 oct. 2005 à 17:09
Salut don cvoilà j'exepose mon probleme j'ai pris un code pour mettre
du bbcode dans un site apres quelque modification du code pour le
rendre comptable avec mon site voilà se que sa donne :



function BBCode(tag1,tag2,val)

{



with(document.form1)

{



if(textenews.createTextRange)

{

var txt;

textenews.focus(textenews.caretPos);

textenews.caretPos = document.selection.createRanger().duplicate();

alert(textenews.caretPos.text.length);

if (form1.textenews.caretPos.text.length > 0)

{

var sel = textenews.caretPos.text;

var fin = '';

while (sel.substring(sel.length-1, sel.length) == ' ')

{

sel = sel.substring(0,length-1);

alert(sel);

fin += '';

}

textenews.caretPos.text = "[" + tag1 + val + "]" + sel + "[" + tag2 + "]" + fin;

}

else

textenews.caretPos.text = "[" + tag1 + val + "][" + tag2 +"]";

}

else

textenews.value += "[" +tag1 + val + "][" + tag2 + "]";

}

}



et le formulaire se nomme donc form1 et le textarea textenews le code du bouton pour mettre le bbcode est :





Mais voilà quand j'écris un texte dans le cadre ,que je le selectionne
et que j'appuie sur le bouton et bin il me mets le bbcode a coté du
texte sélectionnée ensuite j'ai fait un alert pour voire si la première
conditions était remplie et a ma grandre surprise non elle ne l'était
pas car dans tout les cas textenews.createTextRange = undefined.



Si quelqu'un pouvait m'expliquer pk sa ne marche pas



Merci d'avance



PS : je suis sous firefox



@++

5 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
13 oct. 2005 à 06:59
bonjour,
createTextRange n'est pas exclusif Internet Explorer ?
@+
0
RMOINAS Messages postés 98 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 16 septembre 2006
13 oct. 2005 à 07:30
slt



Oui j'ai cruie comprendre cela mai si s'ets vraiment le cas quel commande utiliser pour firefox ??



@++
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
13 oct. 2005 à 08:11
les caractères sélectionnés
pour IE : document.selection.createRange().text
pour FF : substring du "champ"
avec .selectionStart, .selection.End,
.textLength
@+
0
RMOINAS Messages postés 98 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 16 septembre 2006
14 oct. 2005 à 16:24
slt

dsl pour le temps de reponse mais se que tu m'a donné ne peut remplacer
textenews.createTextRange ou alors je suis tres mauvais s'ets util
certe pour le code d'apres mais j'aimerais corriger les erreurs dans
l'ordre et une par une mais merci quand même sa va m'être util.



Pour ceux qui ont d'autres idée n'hésitait pas !!!



@++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
14 oct. 2005 à 17:09
mais si, mais si, si j'ai compris...
il faut ajouter quelque chose avant et
après les caractères sélectionnés ?
un ch'tit exemple, "à finir" ?

<script type="text/javascript">
function Inserer(insertion,ou)
{
switch (navigator.appName)
{
// ================================
case "Microsoft Internet Explorer":
// ================================
ou.focus();
document.selection.createRange().text="<"+insertion+">"+
document.selection.createRange().text+
"</"+insertion+">";
break;
// =============================
case "Netscape": // FireFox...
// ou.value ou.value.substring(0,ou.selectionStart) +
"<"+insertion+">" +
ou.value.substring(ou.selectionStart,ou.selectionEnd)+
"</"+insertion+">" +
ou.value.substring(ou.selectionEnd, ou.textLength);
break;
// ==============
default:// sinon ? ici : faut voir !!!!
// ==============
ou.value="<"+insertion+">"+ou.value+"</"+insertion+<">";
break;
}

}
</script>

<form name="frm">


<== Ajouter la balise

</form>

@+
0
Rejoignez-nous