IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Javascript et �l�ments pour bbcode


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 14
    Par d�faut Javascript et �l�ments pour bbcode
    Bonjour,

    J'ai un formulaire comprenant plusieurs champs contenu.

    Soit contenu1, contenu2, contenu3 et contenu4 tous en textarea dans lesquels je voudrais via des bouton faire des mises en formes avec bbcode.

    Pour pouvoir y introduire des bbcode via des boutons j'ai mis dans mon head le code suivant

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    <script language="Javascript">
    var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;
    var regexp = new RegExp("[\r]","gi");
     
    function storeCaret(selec)
    {
    	if (isMozilla) 
    	{
    	// Si on est sur Mozilla
     
    		oField = document.forms['contenu'].elements['contenu1'];
     
    		objectValue = oField.value;
     
    		deb = oField.selectionStart;
    		fin = oField.selectionEnd;
     
    		objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
    		objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
    		objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );
     
    	//	alert("Debut:'"+objectValueDeb+"' ("+deb+")\nFin:'"+objectValueFin+"' ("+fin+")\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+")");
     
    		oField.value = objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]" + objectValueFin;
    		oField.selectionStart = strlen(objectValueDeb);
    		oField.selectionEnd = strlen(objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]");
    		oField.focus();
    		oField.setSelectionRange(
    			objectValueDeb.length + selec.length + 2,
    			objectValueDeb.length + selec.length + 2);
    	}
     
     
    	else
    	{
    	// Si on est sur IE
     
    		oField = document.forms['contenu'].elements['contenu1'];
    		var str = document.selection.createRange().text;
     
    		if (str.length>0)
    		{
    		// Si on a selectionné du texte
    			var sel = document.selection.createRange();
    			sel.text = "[" + selec + "]" + str + "[/" + selec + "]";
    			sel.collapse();
    			sel.select();
    		}
    		else
    		{
    			oField.focus(oField.caretPos);
    		//	alert(oField.caretPos+"\n"+oField.value.length+"\n")
    			oField.focus(oField.value.length);
    			oField.caretPos = document.selection.createRange().duplicate();
     
    			var bidon = "%~%";
    			var orig = oField.value;
    			oField.caretPos.text = bidon;
    			var i = oField.value.search(bidon);
    			oField.value = orig.substr(0,i) + "[" + selec + "][/" + selec + "]" + orig.substr(i, oField.value.length);
    			var r = 0;
    			for(n = 0; n < i; n++)
    			{if(regexp.test(oField.value.substr(n,2)) == true){r++;}};
    			pos = i + 2 + selec.length - r;
    			//placer(document.forms['contenu'].elements['contenu'], pos);
    			var r = oField.createTextRange();
    			r.moveStart('character', pos);
    			r.collapse();
    			r.select();
     
    		}
    	}
    }
     
     
     
    </script>
    mais le oField = document.forms['contenu'].elements['contenu1']; ne reconnait que l'�l�ment contenu1 et je voudrais savoir comment faire pour qu'les boutons sur contenu2, contenu3 et contenu4 fonctionnent pour ces champs propres.

    Je ne suis pas un sp�cialiste de javascript.

    Quelqu'un pourrait-il m'aider s'il vous pla�t. Merci par avance.

  2. #2
    R�dacteur/Mod�rateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par d�faut
    Salut,

    Tu as le code pour contenu1, tu veux que le m�me code s'�x�cute pour contenu2, 3 et 4. Pas besoin d'�tre un sp�cialiste pour savoir qu'une simple boucle for fait l'affaire ici.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 14
    Par d�faut
    Bonjour Sylvain PV,

    Merci pour cette r�ponse.

    Mais outre le fait de savoir que la formule g�n�rale pour for est
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    for (valeur initiale ; condition; progression) {instruction}
    Je ne sais o� mettre la boucle et par quoi remplacer les valeurs dans les parenth�ses.

    Merci pour ton aide.

  4. #4
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Rien ne t'emp�che � l'appel de la fonction de rajouter un param�tre indiquant � quelle zone de saisie elle doit s'appliquer.
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 14
    Par d�faut
    Bonjour,

    J'ai �crit une fonction pour chaque contenu. R�solu par moi-m�me. Mais merci � ceux qui ont cherch� � m'aider.

  6. #6
    Mod�rateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par d�faut
    Bonjour,
    J'ai �crit une fonction pour chaque contenu
    ne me dis pas que tu as os�

    La r�ponse t'a �t� donn�e par Bovino
    Rien ne t'emp�che � l'appel de la fonction de rajouter un param�tre indiquant � quelle zone de saisie elle doit s'appliquer.
    en d'autres termes l'ent�te de ta fonction devient
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    function storeCaret(id_textarea, selec){
      var oField = document.getElementById( id_textarea); // récup. objet où l'on va appliquer le BBcode
      // la suite du code
    }
    et l'appel
    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    <button onclick="storeCaret('contenu1', 'b');">Gras<button><!-- par exemple -->

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [PHP-JS] Interaction entre javascript et php pour XUL
    Par WalidNat dans le forum Langage
    R�ponses: 2
    Dernier message: 25/05/2011, 13h26
  2. Recherche Javascript coder confirm� pour un projet
    Par jac3n dans le forum G�n�ral JavaScript
    R�ponses: 7
    Dernier message: 22/11/2006, 15h01
  3. [DOM] JavaScript et DOM pour modifier du texte
    Par flykev dans le forum G�n�ral JavaScript
    R�ponses: 9
    Dernier message: 18/07/2006, 15h04
  4. [JavaScript] Taile minimale pour une fen�tre web
    Par efficks dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 07/12/2005, 14h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo