begin process at 2012 05 29 18:57:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Autre

 > 

Problème createRange()


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème createRange()

lundi 31 mars 2008 à 19:38:24 | Problème createRange()

damsdu92

Bonjour,

J'ai actuellement un petit soucis avec la methode createRange() .
Je vous explique :
Sur le site que je suis en train de faire, je souhaite mettre en place un textarea dans lequel je souhaite faire un peu de mise en page avec du BB code.
J'ai récupéré une fonction qui permet d'insérer mes balises de mise en forme. La fonction marche bien sur une page de test la plus simple possible. Par contre en faisant un copier coller dans ma page, là elle ne fonctionne qu'à moitié.
Le BB code s'insère bien là où se trouve le curseur, mais si on selectionne un texte pour que les balises l'entourent le BB code se place à l'endroit où on clique pour faire la selection, mais ne l'entoure pas.

Donc j'ai fais un test :
- J'ai mis un alert(); pour voir si la fonction recupère bien la selection. Sur la page test ca fonctionne il m'affiche le texte selectionné mais sur ma page la selection est vide.

Je ne comprend pas pourquoi cette selection est vide.

Pouvez vous m'aider svp ?
lundi 31 mars 2008 à 19:51:44 | Re : Problème createRange()

PetoleTeam

Membre Club
Bonjour,
Difficile de te dire sans aucune ligne de code
Néanmoins une source qui peut t'aider CURSEUR dans TEXTAREA
;O)
lundi 31 mars 2008 à 20:08:33 | Re : Problème createRange()

damsdu92

Je vous mets le code en zappant les parties non concernées.

<html>

<head>
<link rel="Stylesheet" href="css/css1.css" content="text/css">
<script type="text/javascript">

function insertTag(tag) {

var repdeb="["+tag+"]";
var repfin="[/"+tag+"]";
var input = document.forms['formulaire'].elements['commentaires'];
//var input = document.getElementById('commentaires');
input.focus();

/* pour l'Explorer Internet */
if(typeof document.selection != 'undefined') {
/* Insertion du code de formatage */
var range = document.selection.createRange();
var insText = range.text;
alert(insText);
range.text = repdeb + insText + repfin;
/* Ajustement de la position du curseur */
range = document.selection.createRange();
if (insText.length == 0) {
range.move('character', -repfin.length);
}
else {
range.moveStart('character', repdeb.length + insText.length + repfin.length);
}
range.select();
}
}



</script>
</head>

<body>
<a name="haut">

<form name="formulaire">
<table width="100%" class="post_comment" cellspacing="0" cellpadding="2">
<tr height="20">
<td class="titre_fenetre3" align="left" colspan="2">Déposer un commentaire</td>
</tr>
<tr>
<td align="left" class="form2" width="22%">Votre prénom :</td>
<td align="left" class="form2"><input type="text" name="prenom"></td>
</tr>
<tr>
<td align="left" class="form2" width="20%">Votre commentaire :</td>
<td align="left" class="form2">
<table border="0" cellpadding="0" cellspacing="0" class="barre_boutons" height="20px">
<tr>
<td align="center" width="20px"><div class="bouton_out" width="100%"
onMouseOver="this.className='bouton_over'"
onMouseOut="this.className='bouton_out'"
onClick="insertTag('g')" title="Gras">G</div></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="left" class="form2" width="20%">&nbsp;</td>
<td align="left" class="form2"><textarea name="commentaires" cols="80" rows="7"></textarea></td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</div>


</body>

</html>

Voilà j'espère que cela va vous aider
lundi 31 mars 2008 à 21:50:10 | Re : Problème createRange()

PetoleTeam

Membre Club
Ton problème viens du fait que ta TEXTAREA perd le focus, donc il n'existe plus de selection, au moment ou tu cliques sur le document...
...essaies de remplacer ton DIV par un input
;O)
mardi 1 avril 2008 à 11:32:32 | Re : Problème createRange()

damsdu92

Merci c'est bon ca fonctionne
Bravo


Cette discussion est classée dans : page, code, selection, bb, createrange


Répondre à ce message

Sujets en rapport avec ce message

SVP C TRES IMPORTANT [ par SIRUS ] merci de regarder ce messagevoila mon problème:dans une page html il y a une variable qui contient une valeur:voila et j'aimerai placé la valeur de ce récupéré le code html généré par le php [ par matmax ] J'aimerai ouvrir une page qui contient seulement les données essentielles (générées en php). Donc, peut être qu'il est possible de récupérer ( en java probleme getElementsById [ par EvilGost ] Bonjour,j'ai un petit problème:sur un page, sur laquelle il y a des paragraphes, qui sont entourés de balises ELEMENT, comme ceci:bla cacher le code source d'1 page web [ par patator51 ] salut a tous,j'ai un PB, je ne sais pas comment empecher la lecture d'un source ou bloquer l'option "afficher la source" dans IEmerci encorepatator51 mozilla et les sélections :( [ par randiox ] voila j'ai fait un petit code qui tourne sous IE :function smiley(code) { var chaine = document.selection.createRange().text; document.formulaire.te fermer une page [ par kimen ] J'ai créé une page contenant trois cadres et dans celui du bas il y a un code pour fermer cette page.ce code étantFermer la fenêtre le seul problème c Changer taille de la page de 1024*768 par 800*600 [ par supernulle ] Bonjour,je suis une tache en code, je viens de terminer mon site et je me suis rendu compte en le mettant en ligne ke je l'avais réaliser en 1024*768, envoyer le code source d'une page par formulaire [ par cumu ] Bon voilà un code un peu spécialJe suppose que l'on aura besoin de javascript pour y arriverj'aimerai avec un bouton je puisse envoyer le code source code pour ouvrir une page dans 1 nouvelle fenetre [ par quitues ] j'ai un événement onmousedown="window.location='../../...htm';"et j'aimerais que lorsque l'on clique, ca ouvre dans 1 nouvelle fenetre.g essaye blank. Page de cadres et fonctions [ par defluc ] J'ai une page de cadre avec du code Javasrcipt dans le body et les fonctions appelées dans la section d'en-tête.Ce code s'exécute deux dois à l'appel


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales