CreateTextRange toujours a undefined

Signaler
Messages postés
98
Date d'inscription
mardi 3 février 2004
Statut
Membre
Dernière intervention
16 septembre 2006
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
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



@++
A voir également:

5 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
bonjour,
createTextRange n'est pas exclusif Internet Explorer ?
@+
Messages postés
98
Date d'inscription
mardi 3 février 2004
Statut
Membre
Dernière intervention
16 septembre 2006

slt



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



@++
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
les caractères sélectionnés
pour IE : document.selection.createRange().text
pour FF : substring du "champ"
avec .selectionStart, .selection.End,
.textLength
@+
Messages postés
98
Date d'inscription
mardi 3 février 2004
Statut
Membre
Dernière intervention
16 septembre 2006

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



@++
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
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>

@+