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 :

Onclick = une fonction ?


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 143
    Points : 55
    Points
    55
    Par défaut Onclick = une fonction ?
    Bonjour,

    J'essaie en javascript, suivant la présence ou non d'un cookie, d'affecter une fonction différente sur un événement onclick sur une image.

    J'ai bien essayé comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('imgContact').attributes.item('onclick') = EnvoiContact2(document.getElementById('hfAnnonce_id').value);
    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('imgContact').attributes.item('onclick') = "EnvoiContact2(document.getElementById('hfAnnonce_id').value);"
    Mais j'ai un message d'erreur qui me dit :

    impossible d'affecter à un résultat de fonction
    Une idée, un conseil, etc.. Tout aide est la bienvenue!!

    Merci d'avance!

    ++

  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 : 53
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    document.getElementById('imgContact').onclick = function(){
        EnvoiContact2(document.getElementById('hfAnnonce_id').value);
    };
    En JavaScript, le signe = correspond à une affectation, donc si la valeur affectée est de la forme EnvoiContact2(variable) alors c'est le résultat de l'exécution de la fonction qui sera affecté.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 143
    Points : 55
    Points
    55
    Par défaut
    Clair, précis, efficace!

    Merci!

    Que rajouter de plus.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 143
    Points : 55
    Points
    55
    Par défaut
    Par contre lorsque je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('CorpsPageFormulaire').attributes.item('onclick') = function() { window.open('http://www.scellier.com/') };
    j'ai le message :


    impossible d'affecter à un résultat de fonction
    Et avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('CorpsPageFormulaire').attributes.item('onclick') = window.open('http://www.scellier.com/');
    pas de message d'erreur mais pas d'ouverture de fenêtre non plus...

  5. #5
    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 : 53
    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
    La propriété onclick d'un objet HTMLElement, c'est pas pareil que l'attribut onclick d'une balise HTML
    Ensuite, passer par la collection attributes, c'est pas forcément faux en soi, mais c'est plus du DOM XML que du DOM HTML.
    L'idéal est de passer par la propriété JavaScript (ben oui, quand on fait du JavaScript, autant utiliser les outils JavaScript ) ou si tu veux absolument passer par l'attribut (), tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('CorpsPageFormulaire').setAttribute('onclick', "window.open('http://www.scellier.com/')");

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 143
    Points : 55
    Points
    55
    Par défaut
    Encore une fois, c'est toujours aussi rapide, clair (quoi que...) et surtout c'est fonctionnel

    Merci!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 07/06/2007, 14h27
  2. [PHP-JS] lancer une fonction php via onClick?
    Par popogendarme dans le forum Langage
    Réponses: 3
    Dernier message: 30/01/2007, 14h29
  3. Une fonction javascript dans un évènement onClick
    Par Lomig dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/01/2007, 21h52
  4. Faire apelle a une fonction javascript depuis un onclick=&am
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/12/2005, 21h41
  5. Réponses: 6
    Dernier message: 16/11/2005, 20h43

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