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 :

changer le onclick


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 39
    Points : 29
    Points
    29
    Par défaut changer le onclick
    Bonjour, alors voilà j'essai de modifié le onClick d'une page.
    Ce bout de code fonctionne pour la value, mais pas pour le onClick.
    Autant dire que je m'y connais très peu en javascript, et l'erreur dois surement être facile à trouvé pour un développeur javascript.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    window.opener.document.forms['shoutbox_form'].elements['couleur'].value = new_color;
    window.opener.document.forms['shoutbox_form'].elements['couleur'].onclick = "insertTag('[COLOR="+new_color+"]','[/COLOR]','shoutbox');";
    La première ligne change la value de ce bouton, la deuxieme ne fonctionne pas mais devrais modifié le onClick

    Par defaut, le bouton est ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" name="couleur" size="7" maxlength="7" value="#000000" class="case" style="width:70px;" onclick="insertTag('','','shoutbox');" />
    J'éspère que vous quelqu'un pourra m'aider.

  2. #2
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Salut.

    Tu fais une confusion (assez fréquente du reste) entre la propriété JavaScript onclick et l'attribut HTML onclick.
    Dans ta notation, tu attribues à la propriété onclick une chaîne de caractères, ce qui n'est pas le ce que tu souhaites réellement.
    Si tu veux modifier l'attribut HTML, il faut passer par setAttribute(), mais cela n'a pas d'intérêt dans ton cas, cela oblige JavaScript à réinterpréter la valeur de l'attribut puis à l'intégrer dans une fonction anonyme. Le mieux est de définir à l'objet HTML la propriété click (comme tu le fais actuellement) et lui attribuer comme valeur une référence à une fonction.
    Ceci dit, si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    elementHTML.onclick = uneFonction(paramètres);
    tu ne vas pas affecter une référence à la fonction mais le résultat du traitement de cette fonction.
    Il faut donc faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    elementHTML.onclick = uneFonction;
    sauf que là, tu ne peux pas passer de paramètres...
    L'astuce pour passer des paramètres est d'englober l'appel de la fonction dans une référence à une fonction anonyme, dans ton cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    window.opener.document.forms['shoutbox_form'].elements['couleur'].onclick = function(){
        insertTag('[COLOR='+new_color+']','[/COLOR]','shoutbox');
    }

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 39
    Points : 29
    Points
    29
    Par défaut
    Merci de ta réponse,

    En cherchant sur google, j'avais vu qu'il fallait une méthode anonyme.

    J'ai donc essayé (j'ai rajouté un id="couleur" à mon bouton):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    window.opener.document.getElementById("couleur");
    couleur.onclick = funtion(){ insertTag('[COLOR='+new_color+']','[/COLOR]','shoutbox'); };
    Mais ça n'a pas fonctionné.

    J'ai également essayé avec le code d'origine que ta corrigé, et malheureusement rien ne se passe.

    Je n'ai pas de tools comme firebug pour tester mon js et dans la source je vois pas ci ça comment ça changer.

    En tout cas, avant l'execution du script, le onclick fonctionne, après l'execution, il ne fonctionne tout simplement plus.
    Je vais essayé de voir les possibilités qu'offre firebug

    Edit: avec firebug, je ne trouve pas d'options pour voir l'état de la source après que le script ai modifié le onclick.
    Peut être c'est moi qui trouve pas, en tout cas je cherche toujours une solution

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 39
    Points : 29
    Points
    29
    Par défaut
    Je cherche toujours une solution à mon problème.


    Avec des alerts:

    l'alerte de ma fonction me renvois le contenu de la fonction tel quel en entier (new_colorpas modifié)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(window.opener.document.forms['shoutbox_form'].elements['couleur'].onclick = function(){insertTag('[COLOR='+new_color+']','[/COLOR]','shoutbox');});
    L'alerte de la ligne me renvois le contenu de la ligne tel quel (new_colorpas modifié)
    L'alerte me renvoi la couleur bien modifié.

    C'est probablement une erreur de syntaxe non?

Discussions similaires

  1. Changer Attribut Onclick
    Par deram_julien dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/01/2010, 13h36
  2. [Débutant] Changer action onclick, lors d'un click
    Par omageus dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/04/2009, 08h36
  3. changer valeur select onclick
    Par zevince dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/02/2007, 14h27
  4. [javascript] Changer la valeur de onclick()
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/12/2005, 10h29

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