Partage
  • Partager sur Facebook
  • Partager sur Twitter

alert avec onclick

syntaxe

Sujet résolu
    22 octobre 2011 à 16:17:05

    Bonjour,
    Je souhaiterais ajouter un boutton sur une page html. J'ai actuellement mis ce code :
    document.getElementsByTagName('h1')[0].innerHTML = 
    document.getElementsByTagName('h1')[0].innerHTML +' '+ '<input type="button" value="testez votre défense !" onClick=alert("mon texte + variable")>';
    


    Le soucis de ce code est qu'il fonctionne parfaitement si dans l'alerte j'ai mis un texte mais je souhaiterais qu'il m'affiche un peu de texte suivi d'une variable. J'ai chercher d'autre code mais avec d'autres je n'arrive pas aussi proche du but. Cetains conseillaient de mettre plutot :
    onClick="alert('mon texte + variable');">
    

    mais celui ci ne fonctionne pas.
    Je vous remercie d'avance
    Nicolas
    • Partager sur Facebook
    • Partager sur Twitter
      22 octobre 2011 à 16:43:48

      Ça serait pas plutôt par hasard ?
      onClick="alert('mon texte' + variable);">
      
      • Partager sur Facebook
      • Partager sur Twitter
        22 octobre 2011 à 16:49:40

        Avec ce code je n'ai plus le bouton en haut de page :(
        • Partager sur Facebook
        • Partager sur Twitter
          22 octobre 2011 à 19:06:02

          '<input type="button" value="testez votre défense !" onClick=alert("mon texte '+variable+'")>';
          


          ?
          • Partager sur Facebook
          • Partager sur Twitter
            22 octobre 2011 à 20:38:51

            Merci Golmote,
            Je viens de le mettre en place mais cela ne fonctionne que s'il n'y a pas d'espace dans l'alerte. Du coup le message est assez moche :(
            Si tu as une idée pour faire un saut à la ligne et mettre les espaces je prend :)
            Merci
            • Partager sur Facebook
            • Partager sur Twitter
              22 octobre 2011 à 21:46:58

              Et si tu donnais un exemple ? Concret, j'entends.
              • Partager sur Facebook
              • Partager sur Twitter
                22 octobre 2011 à 22:01:34

                document.getElementsByTagName('h1')[0].innerHTML = 
                document.getElementsByTagName('h1')[0].innerHTML +' '+ '<input type="button" value="testez votre défense !" onClick=alert("unité_mini:'+ nb_min +'ressources_minimum:'+ or_min +'")>';
                


                La je reçois dans le message unité_mini:100ressources_minimum:1500

                Par contre si je met :

                document.getElementsByTagName('h1')[0].innerHTML = 
                document.getElementsByTagName('h1')[0].innerHTML +' '+ '<input type="button" value="testez votre défense !" onClick=alert("unité mini: '+ nb_min +'ressources minimum: '+ or_min +'")>';
                


                ou encore :

                document.getElementsByTagName('h1')[0].innerHTML = 
                document.getElementsByTagName('h1')[0].innerHTML +' '+ '<input type="button" value="testez votre défense !" onClick=alert("unité_mini:'+ nb_min +'\nressources_minimum:'+ or_min +'")>';
                


                Je n'ai rien du tout lorsque je clique sur le bouton (comme s'il était désactivé).
                • Partager sur Facebook
                • Partager sur Twitter
                  23 octobre 2011 à 3:53:23

                  Peux-tu donner le code complet ? Ou mieux encore, un lien vers la page online ?

                  Parce que là, c'est totalement aberrant.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    23 octobre 2011 à 14:08:05

                    Ba le soucis c'est que c'est un script pour un jeu. J'utilise greasemonkey pour ajouter des objets sur une page ou des infos. Précédemment sur mon plugin j'ai prélevé l'information sur la page, j'ai fais des calculs dessus puis je souhaite afficher la variable.

                    function Arrondir(x, n) { // fonction qui prend un nombre en x et le nombre de décimal et ressort le nombre arrondi
                    } 
                    
                    function ChangePrix(Arg) { // transforme une string (de type + 10 k par exemple) en un nombre (dans ce cas 10 000)
                    } 
                    
                    function Convert(Quantite) { // fonction inverse de Changeprix (pour réafficher proprement)
                    } 
                    
                    var val = document.getElementsByTagName('div'); //création du tableau d'informations
                    
                    //valeur defensives des unités
                    var def_sat=val[11].innerHTML; 
                    var def_drone=val[16].innerHTML; 
                    var def_AR=val[21].innerHTML;
                    var def_agent=val[26].innerHTML;
                    
                    //conversion en nombre
                    def_sat=ChangePrix(def_sat);
                    def_drone=ChangePrix(def_drone);
                    def_AR=ChangePrix(def_AR);
                    def_agent=ChangePrix(def_agent);
                    
                    //calcul du nombre d'unité nécessaire et or
                    var nb_min=Arrondir((def_sat+def_drone+def_AR+def_agent)/(45000*1.5),0);
                    var or_min=nb_min*10000;
                    
                    //conversion pour affichage
                    nb_min=Convert(nb_min);
                    or_min=Convert(or_min);
                    
                    //affichage sous forme d'alerte qui fonctionne bien pour la mise en page
                    //alert('Satellite minimum: ' + Convert(nb_min) + '/esp.' + '\n' + 'Or minimum: ' + Convert(or_min) + '/esp.');
                    
                    
                    // ajout des infos dans la page avec un bouton (emplacement différent du tableau)
                    document.getElementsByTagName('h1')[0].innerHTML = 
                    document.getElementsByTagName('h1')[0].innerHTML +' '+ '<input type="button" value="testez votre défense !" onClick=alert("Sat_minimum:'+ nb_min +'Or_minimum:'+ or_min +'")>';
                    


                    Ca c'est mon plugin qui j'insère dans la page html reçu sur le site.

                    Voici la structure de l'emplacemement de l'affichage :

                    <table width="100%" cellspacing="0" cellpadding="0">
                    	<tr>
                    		<td>
                    			<h1 class="blockHead">Espionnage</h1>
                    			       <div class="openblock">		
                                                          <table width="100%" border="0" cellpadding="1" cellspacing="1"></table>
                    			       </div>
                    			<div id="blockFoot"></div>
                    		</td>
                            </tr>
                    </table>
                    


                    Dans mon cas le bouton s'affiche juste après Espionnage (ligne 4) mais selon l'écriture dans mon alerte, le bouton ouvre une fenêtre ou ne l'ouvre pas (s'il y a un espace).

                    Merci bien du temps que vous m'accordez :)
                    Nicolas
                    • Partager sur Facebook
                    • Partager sur Twitter
                      23 octobre 2011 à 14:20:42

                      Ah bah si, ça y est j'ai compris...

                      Le contenu de ton onclick n'est pas entouré de guillemets... donc l'attribut s'arrête au premier espace... Entoure avec des doubles quotes, et entoure la chaîne dans l'alert() avec des... simples quotes échappées.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        23 octobre 2011 à 14:29:06

                        Comme ca?
                        onClick="alert(''Sat_minimum:'+ nb_min +'Or_minimum:'+ or_min +');"
                        


                        Avec ce code le bouton ne s'affiche plus
                        • Partager sur Facebook
                        • Partager sur Twitter
                          23 octobre 2011 à 16:03:16

                          Faut que tu restes logique dans tes quotes.

                          Tu utilises les simples quotes dans ton JS et les double autour des propriétés.
                          Donc pour mettre des simples quotes autour de la chaîne dans l'alert(), faut que tu les échappes avec un antislash...

                          '<input type="button" value="testez votre défense !" onClick="alert(\'Sat_minimum:'+ nb_min +'Or_minimum:'+ or_min +'\')">'
                          
                          • Partager sur Facebook
                          • Partager sur Twitter
                            23 octobre 2011 à 16:30:06

                            Merci beaucoup pour ton aide ça marche !!!
                            Nicolas

                            PS: je vais me renseigner sur tous les types de quotes :)
                            • Partager sur Facebook
                            • Partager sur Twitter
                              23 octobre 2011 à 16:33:38

                              Bah, les simples et les doubles ^^' Et pour imbriquer des quotes de même type, tu échappes.

                              Pense à mettre ton sujet en résolu à l'aide du bouton approprié ;)
                              • Partager sur Facebook
                              • Partager sur Twitter
                                23 octobre 2011 à 16:35:18

                                oui pas de soucis je fais ça de suite :)

                                Bonne continuation.
                                • Partager sur Facebook
                                • Partager sur Twitter

                                alert avec onclick

                                × 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