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 :

Dysfonction d'un code simple sous IE


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut Dysfonction d'un code simple sous IE
    Bonjour,
    Quelqu'un peut me dire pourquoi cette ligne de code javascript fonctionne sous Firefox et Chrome, mais pas sous IE ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <td bgcolor="GreenYellow" 
    onMouseOver="if(this.bgColor=='GreenYellow'){this.bgColor='Yellow'}" 
    onMouseOut="if(this.bgColor=='Yellow'){this.bgColor='GreenYellow'}" 
    onClick="if(this.bgColor=='Yellow'){this.bgColor='Orange';form_resa.date15.value='15'}else{this.bgColor='GreenYellow';form_resa.date15.value=''}" style="cursor:pointer">
    Pb : La cellule <td>ne change pas de couleur OnMouseOver et OnClick et j'ignore si la modif du champs invisible se passe bien :

    "Date15" est l'ID d'un champs "hidden" du formulaire "form_resa" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="date[]" value="" id="date15">
    Y aura-t-il d'autres navigateurs avec lesquels ce code ne fonctionnera pas, nottamment la modif du champs invisible du formulaire, qui est cruciale ? (Iphone, Androïd...?)

    Je ne suis pas du tout familier de JavaScript et ne l'utilise en général pas.
    Merci.

  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <td style="background-color:GreenYellow" 
    onMouseOver="if(this.style.backgroundColor=='GreenYellow'){this.style.backgroundColorr='Yellow'}" 
    onMouseOut="if(this.style.backgroundColor=='Yellow'){this.style.backgroundColor='GreenYellow'}"
    http://jsfiddle.net/DTnNA/
    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
    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
    Billets dans le blog
    20
    Par défaut
    Apparemment, IE transforme les noms de couleurs en minuscules.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <td style="background-color:greenyellow" 
    onMouseOver="if(this.style.backgroundColor=='greenyellow'){this.style.backgroundColorr='yellow'}" 
    onMouseOut="if(this.style.backgroundColor=='yellow'){this.style.backgroundColor='greenyellow'}">

    Ceci dit, il est plutôt conseillé de passer par des couleurs hexa (#RRVVBB) que des couleurs nommées.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    suffit de faire un toLowerCase()...

    http://jsfiddle.net/DTnNA/2/
    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 !

  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 : 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
    Billets dans le blog
    20
    Par défaut
    Pourquoi faire ? Ca marche aussi bien sans majuscules !
    http://jsfiddle.net/DTnNA/3/
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par défaut
    Juste en passant <tr/> => <tr>
    *se barre trèèès loin*

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut
    Bravo les gars, ça marche maintenant dans IE ! Sauf que vous savez quoi ? Ca ne marche plus dans Chrome !!!

    Sinon, pour info, ce code fonctionne dans IE :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <td rowspan="5" align="center" 
    	valign="top" bgcolor="GreenYellow"  
    	onMouseOver="this.bgcolor='Yellow'" 
    	onMouseOut="this.bgcolor='GreenYellow'" 
    	onClick="location.href='/resa.php?activite=cours&date[0]=3&lg=fr'" style="cursor:pointer">

    Donc apparemment le tag td bgcolor est compris par IE et peut être modifié. Ce serait plutôt les if qui poseraient problème...

    Pour ce qui est d'utiliser :hover, j'ai essayé et ça ne marche pas : ma cellule ne devient pas orange quand je clique dessus. Voici mon code :
    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
    <!DOCTYPE html><html>
    <head>
    <style>
    td.horaire{
    cursor:pointer;
    background-Color:greenyellow;
    }
    td.horaire:hover{
    cursor:pointer;
    background-Color:yellow;
    }
     
    </style>
     
     
    </head>
    <body>
    <form name="form_resa" method="post" action="resultat.php" 
    <input name="date[]" type="text" value="" id="date15">
    </form>
    <table><tr>
    <td class="horaire" onClick=if(this.style.backgroundColor=='yellow'){this.style.backgroundColor='orange'; form_resa.date15.value='15'}else{this.style.backgroundColor='greenyellow';form_resa.date15.value=''}";>
    &nbsp;coucou</td></tr></table></body></html>
    Je précise que je veux que la cellule vert-jaune devienne jaune quand je passe dessus et orange quand je clique dessus (tout en modifiant le formulaire), puis à nouveau vert-jaune si je reclique dessus alors qu'elle est orange. Il ne s'agit pas que d'un simple "hover" !


    Enfin, voici un essai où j'ai remplacé les noms de couleurs par les codes #RRVVBB, et rien ne marche :
    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
    <form name="form_resa" method="post" action="resultat.php" 
    <input name="date[]" type="text" value="" id="date15">
    </form>
    <table><tr>
    <td style="background-color:#ADFF2F; cursor:pointer" onMouseOver="if(this.style.backgroundColor=='#ADFF2F') 
    {
      this.style.backgroundColor='#FFFF00'
    }" 
     
    onMouseOut="if(this.style.backgroundColor=='#FFFF00') 
    {
      this.style.backgroundColor='#ADFF2F'
    }" 
     
    onClick="if(this.style.backgroundColor=='#FFFF00'){this.style.backgroundColor='#FFA500'; form_resa.date15.value='15'}else{this.style.backgroundColor='#ADFF2F';form_resa.date15.value=''}">&nbsp;coucou</td></tr></table>
    Pouvez-vous m'aider s'il vous plaît ?

  8. #8
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 119
    Billets dans le blog
    1
    Par défaut
    bonsoir !

    Vous utilisez de l HTML ancien bgColor et les evenements sur tag c est de l ancien version HTML
    Dans ce cas faite attention au DOCTYPE de votre page car si vous ne declarez pas de DOCTYPE dan votre page IE part en quirk en quoi il fait ce qu il veut

    pour le hover sur un <td> c est de l HTML 5 css3 je crois ! ca doit pas marcher sur IE ancien


    je vous propose une solution :

    si vous voulez ecrire les ancien HTML
    1 trouver le DOCTYPE qui vous convient et inserer le au debut de la page !!
    apres pour avoir directement l effet hover et clic ajouter la balise a dans le TD comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <td>
    <a href="http://mapage.php" class="hoverable">lien</a>
    </td>
    et un bout de css :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    a.hoverable{
     display:block;margin:0;
     background:greenyellow;
    }
    a.hoverable:hover{
      background:yellow;
    }
    avec ca vous avez l effet du hover car le <a> couvre la cellule . le clic avc le href .

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut
    J'ai déjà fait l'essai avec le :hover (voir mon post juste au-dessus). On peut le faire directement sur .td
    Le problème est que tant qu'il s'agit de ne faire qu'un changement de couleur lors d'un :hover ça va, mais je veux aussi pouvoir cliquer sur cette cellule, et que la couleur change (orange) et reste, où que se trouve le curseur, sauf si on reclique dessus, auquel cas, elle retrouve sa couleur vert-jaune initiale.

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

Discussions similaires

  1. Code simple qui plante sous vista et non sous XP ou W7
    Par laliloulelo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/01/2011, 14h22
  2. Code Simple : Utiliser Excel sous VB ?
    Par fabiofabio dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/08/2007, 13h00
  3. Explication de code simple
    Par Clad3 dans le forum OpenGL
    Réponses: 3
    Dernier message: 20/03/2005, 11h31
  4. [JavaComm]Pb avec l'execution d'un code natif sous linux
    Par seb31 dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 02/06/2004, 14h25
  5. Réponses: 2
    Dernier message: 08/04/2004, 11h11

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