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 :

Appel Javascript dans css onClick, comment faire?


Sujet :

JavaScript

  1. #1
    Membre actif Avatar de copin
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2005
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2005
    Messages : 231
    Points : 244
    Points
    244
    Par défaut Appel Javascript dans css onClick, comment faire?
    Bonjour à tous,

    Je souhaite mettre en place un javascript qui serait apeler lors d'un clic sur le Background de mon Body.

    J'explique le probleme. J'ai dans mon Body différent Div. Je souhaite que le javascript s'execute lorsque que le visiteur clic en dehors d'une Div sur le background du Body.

    J'ai effectué une recherche sur le net ou j'ai vu qu'on pouvait apeler un javascript dans le css comme suis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    body{
    background-image: url('javascript:DefineBackgroundProperties(););
    ...
    }
    avec dans ma page

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script type="text/javascript">
    function DefineBackgroundProperties(){
    window.open('les paramètres qui vont bien pour l'ouverture de la page'); 
    }
    </script>
    Cependant avec ce code la fenetre s'ouvre dès le chargement de la page apelante. Comment faire pour capter le clic étant donné que le js est apelé dans le css?

    D'avance merci,
    2.21 GigoWatts! 2.21 GigoWatts!!!!!!

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 638
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    je ne pense pas que tu puisses y arriver comme ça ...

    Fait plutot une recherche avec cancelBubble et StopPropagation

    tu bloques la propagation du onclick sur tous les divs de la page et tu mets un onclick sur le body ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function stopDivs(){
    var AllDivs=document.getElementsByTagName('Div');
    for(j=0;AllDivs[j];j++){
          AllDivs[j].onclick=function(evt){
    			  		evt=(evt)?evt:window.event;
    			  		if (evt.stopPropagation) {evt.stopPropagation();}
    					else{evt.cancelBubble = true;}
    					}
    		}
    }
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre actif Avatar de copin
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2005
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2005
    Messages : 231
    Points : 244
    Points
    244
    Par défaut
    Bonjour,

    Merci de la réponse c'est exactement ce que je cherchais à faire.

    Génial.
    2.21 GigoWatts! 2.21 GigoWatts!!!!!!

  4. #4
    Membre actif Avatar de copin
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2005
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2005
    Messages : 231
    Points : 244
    Points
    244
    Par défaut
    Re salut,

    En faisant un test de compatibilité sous FireFox j'ai remarqué que la fonction rencontré un peu petit probleme.

    En effet sous IE pas de problème tout roule.
    Sous Firefox, la fonction avec uniquement des clics gauches fonctionne. Par contre si je clique droit sur la div devant être inhibée le javascript qui s'execute.

    J'ai tenté de reprendre ta fonction en ajoutant dans la boucle fort

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     AllDivs[j].onMousedown=function(evtt){
    			  		evtt=(evtt)?evtt:window.event;
    			  		if (evtt.stopPropagation) {evtt.stopPropagation();}
    					else{evtt.cancelBubble = true;}
    					}
    		}
    Ceci afin d'iniber le clic droit sur la div de la meme manière que précédemment mais sans succès... Est ce que je commet une erreur quelquepart?

    Merci
    2.21 GigoWatts! 2.21 GigoWatts!!!!!!

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 638
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre actif Avatar de copin
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2005
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2005
    Messages : 231
    Points : 244
    Points
    244
    Par défaut
    Salut,

    Merci de la réponse rapide.

    Effectivement le "onMousedown", j'y ai pensé mais tester minuscule pour commencer puis majuscule sans succès evidemement.

    Mon code a l'état actuelle est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    <script language="JavaScript">
    function stopDivs(){
    var AllDivs=document.getElementsByTagName("Div");
    for(j=0;AllDivs[j];j++){
    		AllDivs[j].onclick=function(evt){
    			  		evt=(evt)?evt:window.event;
    			  		if (evt.stopPropagation) {evt.stopPropagation();}
    					else{evt.cancelBubble = true;}
    					}
    		AllDivs[j].onmousedown=function(evtt){
    			  		evtt=(evtt)?evtt:window.event;
    			  		if (evtt.stopPropagation) {evtt.stopPropagation();}
    					else{evtt.cancelBubble = true;}
    					}
    		}
    }
     
     
    </script>
    <script type="text/javascript">
      function blop(){
    	       window.open('http://www.ag2rpro.com', 'vad', 'toolbar=yes, location=yes, status=yes, scrollbars=yes,resizable=yes, width=800, height=800, left=400, top=50');
            } 
     
    </script>
    </head>
    <body OnClick="javascript:blop();" OnLoad="javascript:stopDivs();">
    Je met la fonction stopDivs() avec dans la boucle for le onmousedown pour tenir compte du clic droit.

    Je place dans le onload du body la fonction StopDivs() afin de bloquer tout type de clic sur mes Divs et un Onclick pour permettre une action si clique direct sur mon body hors div.
    2.21 GigoWatts! 2.21 GigoWatts!!!!!!

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 638
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    vire moi ces majuscules dans les évènements !!!!!!


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function mouseright(e)
    {
      if (!e) e = event;
     
      if (e.button == 2)
       alert("c'est un click droit");
     }
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. Appel image dans css externe
    Par roro357 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 19/03/2007, 10h50
  2. [ Cross Window ] Pop up appel javascript dans opener
    Par Warz dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/05/2006, 14h13
  3. [débutant]javascript dans css?
    Par ozzmax dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 17/11/2005, 15h35
  4. Très long texte dans Quick Report - Comment faire ?
    Par delphi+ dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/08/2005, 22h18
  5. [Syntaxe] Un return dans un try... Comment faire ?
    Par chuky dans le forum Général Java
    Réponses: 13
    Dernier message: 14/01/2005, 10h33

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