Javascript

Discussion dans 'Web, design' créé par aKC1a, 15 Février 2005.

Statut de la discussion:
Fermée.
  1. Offline
    aKC1a OldSchool CS Star
    est ce que kkun aurait en stock un javascript pour insérer une sorte de tableau style bbcode .

    je m'explik avoir les btn [.b] [.u] ...
    comme si dessus.
    en rapport avec un formulaire.

    G chopper kkchoz et transformé selon mes besoins mais ca marche pas :-(
    ca ne m'interp^rete pas :-( -> si ds le form g [.b]akcia[./b]
    et bien au lieu de m'ecrire akcia en gras il m'ecrit [.b]akcia[./b] (ss les point hein ;) ;) )

    Code:
    <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['form1'].elements['content'];
    
    		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['form1'].elements['content'];
    		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['form1'].elements['content'], pos);
    			var r = oField.createTextRange();
    			r.moveStart('character', pos);
    			r.collapse();
    			r.select();
    
    		}
    	}
    }
    
    </script>
    et mon form

    Code:
    <form name="form1" method="post" action="write_news.php">
        Titre<br><textarea name="title" rows=5 cols=50></textarea><br><br>
    	Week - 	<input name="week" type="text"><br><br>
    	Source - <input name="source" type="text"><br><br>
    	Resume<br><textarea name="resume" rows=10 cols=65></textarea><br><br>
    	News<br>
    	<input type="button" value="b" style="width:50px;font-weight:bold" onclick="storeCaret('b')">
    <input type="button" value="i" style="width:50px;font-style:italic" onclick="storeCaret('i')">
    <input type="button" value="u" style="width:50px;text-decoration:underline" onclick="storeCaret('u')">
    <input type="button" value="quote"style="width:50px" onclick="storeCaret('quote')">
    <input type="button" value="code"style="width:50px" onclick="storeCaret('code')">
    <input type="button" value="url"style="width:50px" onclick="storeCaret('url')">
    <input type="button" value="img"style="width:50px" onclick="storeCaret('img')"><br>
    <textarea name="content" id="content" rows=25  wrap="virtual"cols=100></textarea><br><br>
    	<input type="submit" name="submit" value="- Ajouter -">
        </form>
    en fait g surement fait une erreur en retapant le code et en l'adaptant :-(

    Merci
    aKC1a, 15 Février 2005
    #1
  2. Offline
    null ose();
    Si tu le gères via Javascript sans script serveur, fait un remplacement des "[" par "<" et "]" par ">", comme ça : [.b]x[./b] donnera "<b>x</b>" et vu que c'est du HTML, plus de prob :)
    null, 15 Février 2005
    #2
  3. Offline
    WaKaaN JcQL
    c ca ou po ? aKC1a ?
    WaKaaN, 15 Février 2005
    #3
  4. Offline
    MbK_ Etudjant
    MbK_, 15 Février 2005
    #4
  5. Offline
    aKC1a OldSchool CS Star
    c'est ce que j'ai fait
    mais pour l'url ?
    que puis je faire
    ?

    <url>www.google.Fr</url> ca ne va pas donner gchoz :)
    aKC1a, 15 Février 2005
    #5
  6. Online
    Serius ex membre
    tromper
    Serius, 15 Février 2005
    #6
  7. Offline
    null ose();
    Ha, alors vérifie la présence de la balis "<url>" et si c'est le cas, tu fais : "<a href='URL'>URL</a>" mais je ne sais pas t'aider sur la résolution :oops:
    null, 16 Février 2005
    #7
  8. Offline
    MbK_ Etudjant
    tu cherche avec une regex la valeur "www." dans une string et tu fais comme null a dit.

    avec preg_replace() comme fonction
    MbK_, 16 Février 2005
    #8
  9. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
Statut de la discussion:
Fermée.