Partage
  • Partager sur Facebook
  • Partager sur Twitter

boutons bbcode en liste déroulante

ne marchent pas sous safari

    8 juillet 2009 à 14:10:46

    Bonjour a vous amis zéro, c'est la première fois que je post sur je forum javascript.
    Pourquoi? J'ai HORREUR du javascript!

    Ne me demandez pas pourquoi, mais bon avec ce que l'on en fait et la qualité des rendus, je ne préfère pas m'y coller.

    Cependant je crée un système de tutoriel et redaction de tutoriels avec un bbcode perosnnalisé. Et j'ai été contraint d'avoir recours au javascript pour faire les boutons qui ajoutent les balises dans la zone multiligne.

    voici mon code:
    <label for="titre">Titre du tutoriel : </label><input type="text" name="titre" id="titre" <?php if(isset($_POST['titre'])) {echo 'value="'.nl2br(stripslashes(htmlspecialchars($_POST['titre']))).'"';} ?>/><br /><br />
    			<input type="button" id="gras" name="gras" value="gras" onClick="javascript:bbcode('[g]', '[/g]');return(false)" />
    			<input type="button" id="italic" name="italic" value="italique" onClick="javascript:bbcode('[i]', '[/i]');return(false)" />
    			<input type="button" id="souligne" name="souligne" value="souligné" onClick="javascript:bbcode('[s]', '[/s]');return(false)" />
    			<input type="button" id="barre" name="barre" value="barré" onClick="javascript:bbcode('[b]', '[/b]');return(false)" />
    			<input type="button" id="citation" name="citation" value="citation" onClick="javascript:bbcode('[quote]', '[/quote]');return(false)" />
    			<input type="button" id="url" name="url" value="url" onClick="javascript:bbcode('[url to:*adresse du lien*]*texte du lien*', '[/url]');return(false)" />
    			<input type="button" id="image" name="image" value="image" onClick="javascript:bbcode('[img alt:*texte alternatif à l\'image*]*adresse de l\'image*', '[/img]');return(false)" />
    			<input type="button" id="code" name="code" value="code" onClick="javascript:bbcode('[code]', '[/code]');return(false)" />
    			<input type="button" name="titre" value="titre" onClick="javascript:bbcode('[t]', '[/t]');return(false)"/>
    			<input type="button" id="sous-titre" name="sous-titre" value="sous-titre" onClick="javascript:bbcode('[st]', '[/st]');return(false)" />
    			<select name="coul" onchange="color('[color=' + this.form.coul.options[this.form.coul.selectedIndex].value + ']');this.selectedIndex=0;"  class="sbouton">
    
    				<option style="color: black;" value="*couleur*" >Couleur</option>
    				<option style="color: darkred;" value="darkred" onClick="javascript:bbcode('[color=darkred]', '[/color]');return(false)">Rouge fonc&eacute;</option>
    				<option style="color: red;" value="red" onClick="javascript:bbcode('[color=red]', '[/color]');return(false)">Rouge</option>
    				<option style="color: orange;" value="orange" onClick="javascript:bbcode('[color=orange]', '[/color]');return(false)">Orange</option>
    				<option style="color: brown;" value="brown" onClick="javascript:bbcode('[color=brown]', '[/color]');return(false)">Marron</option>
    				<option style="color: yellow;" value="yellow" onClick="javascript:bbcode('[color=yellow]', '[/color]');return(false)">Jaune</option>
    
    				<option style="color: green;" value="green" onClick="javascript:bbcode('[color=green]', '[/color]');return(false)">Vert</option>
    				<option style="color: olive;" value="olive" onClick="javascript:bbcode('[color=olive]', '[/color]');return(false)">Olive</option>
    				<option style="color: cyan;" value="cyan" onClick="javascript:bbcode('[color=cyan]', '[/color]');return(false)">Cyan</option>
    				<option style="color: blue;" value="blue" onClick="javascript:bbcode('[color=blue]', '[/color]');return(false)">Bleu</option>
    				<option style="color: darkblue;" value="darkblue" onClick="javascript:bbcode('[color=darkblue]', '[/color]');return(false)">Bleu fonc&eacute;</option>
    				<option style="color: indigo;" value="indigo" onClick="javascript:bbcode('[color=indigo]', '[/color]');return(false)">Indigo</option>
    
    				<option style="color: violet;" value="violet" onClick="javascript:bbcode('[color=violet]', '[/color]');return(false)">Violet</option>
    				<option style="color: white;" value="white" onClick="javascript:bbcode('[color=white]', '[/color]');return(false)">Blanc</option>
    				<option style="color: black;" value="black" onClick="javascript:bbcode('[color=black]', '[/color]');return(false)">Noir</option>
    			</select>
    			<select name="align">
    				<option>alignement</option>
    				<option style="text-align:left;" onClick="javascript:bbcode('[position=left]', '[/position]');return(false)">A gauche</option>
    				<option style="text-align:center;" onClick="javascript:bbcode('[position=center]', '[/position]');return(false)">Centré</option>
    				<option style="text-align:right;" onClick="javascript:bbcode('[position=right]', '[/position]');return(false)">A droite</option>
    			</select>
    


    excusez l'indentation du code, tous ces [tab] sont réelements utiles dans mon fichier.

    mon problème: les listre déroulantes ne fonctionnent pas sous safari.

    en,fait, j'utilise trois navigateurs:
    • firefox
    • safari (rendu légèrement différent)
    • Internet explorer (par le biais de IE tab)


    Et sous safari, lorsqu'on clique sur une option d'une des listes, aucune balises n'est insérée, alors qu'avec les boutons "normaux" cela fonctionne.

    Avec firefox et IE, no problem, mais safari refuse d'ajouter les balises.

    Vous savez comment régler le problème?
    • Partager sur Facebook
    • Partager sur Twitter
      8 juillet 2009 à 14:52:07

      Plutôt que d'utiliser onclick() sur les options, tu devrais utiliser onchange() sur le select. Je pense que cela résoudrait ton problème.

      (Mais forcément, il faudra modifier ta fonction d'insertion. Sache que si tu passes en paramètre this.value ? tu obtiendras la valeur de l'attribut value de l'option sélectionnée. (Il faudra donc que toutes tes options aient un value))
      • Partager sur Facebook
      • Partager sur Twitter
        9 juillet 2009 à 11:11:02

        mais dans mon code, il y avait déjà un onchange="" pour la selection des couleurs, mais ça ne marche pas.
        • Partager sur Facebook
        • Partager sur Twitter
          9 juillet 2009 à 12:52:06

          Essaie de pas mettre onclick ET onchange... sinon ça risque de planter... ^^ c'est l'un ou l'autre, un onchange sert à rien si tu mets un onclick... (ou presque) ! et ça rendra ton code un peu moins bordélique, en passant ;)
          • Partager sur Facebook
          • Partager sur Twitter

          boutons bbcode en liste déroulante

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown