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

Bibliothèques & Frameworks Discussion :

Incompatibilité avec IE et Safari [script.aculo.us]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre régulier Avatar de youtch
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2002
    Messages : 94
    Points : 90
    Points
    90
    Par défaut Incompatibilité avec IE et Safari
    Mon code est invalide avec IE et Safari : la fonction JS n'est pas lancée du tout car je n'ai pas la fenetre "alert()" qui se lance. Pourtant ça marche bien avec Firefox :
    Est-ce un imbroglio lié aux déclarations de formulaires mal compris par IE ? Pourtant les div incorporés dans les form me semblent valides !

    La partie XHTML :
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="fr-FR" xml:lang="fr-FR">
    <head>
    <script type="text/javascript" src="js/prototype.js"></script>
    <script type="text/javascript" src="js/scriptaculous.js"></script> 
    </head>
    <body >
     
    <ul class='module1_ul'>
    	<li class="module1_li1">Votre choix d'une date&nbsp;:
    		<form id="form_module1" action="serv_aff_accueil.php" method="post">
    		<div id='div_form_module1'>
    		<select id='sidebar_choix1' name='sidebar_choix1'  onclick="surligne_choix('form_module1')"><option value='00'>00</option><option value='01'>01</option></select>
    		/
    		<select id='sidebar_choix2' name='sidebar_choix2'><option value='00'>00</option><option value='01'>01</option></select>
    		/
    		<select id='sidebar_choix3' name='sidebar_choix3'><option value='00'>2000</option><option value='01'>2001</option></select>
    		</div>
    		</form>
    	</li>
    	<li class="module1_li2">Votre choix d'une émission&nbsp;: 
    		<br>
    		<form id='form_module2' action="serv_aff_accueil.php" method="post">
    		<div id='div_form_module2'>
    		<select id='choix_emission' name='choix_emission'>
    		<?php echo affich_emissions() /* Fonction php */?></select>
    		</div>
    		</form>
    	</li>
    	<li class="module1_li3">Votre choix d'un thème&nbsp;:
    		<br>
    		<form id='form_module3' action="serv_aff_accueil.php" method="post">
    		<div id='div_form_module3'>
    		<select id='choix_theme' name='choix_theme'>
    		<?php echo affich_themes() /* Fonction php */?></select>
    		</div>
    		</form>
    	</li>
    </ul>
    <input type='button' id='btn_valider_choix' name='btn_valider_choix' value='Rechercher'>
     
    </body>
    </html>
     
     
     
    /* Le "onclick" de la ligne 5 signifie que j'ai testé avec en supprimant les "ecouteurs" qui suivent, sur 'sidebar_choix1' 
    Mais tout le code suivant se rattache en temps normal au HTML :
    <script langage='text/javascript'>
    	// Observateur pour la mise en surbrillance des élément liés au selecteur choisi :  
    	Event.observe("sidebar_choix1","change",function(){surligne_choix('form_module1');});
    	Event.observe("sidebar_choix1","click",function(){surligne_choix('form_module1');}); 
    	Event.observe("sidebar_choix2","change",function(){surligne_choix('form_module1');});
    	Event.observe("sidebar_choix2","click",function(){surligne_choix('form_module1');});
    	Event.observe("sidebar_choix3","change",function(){surligne_choix('form_module1');});
    	Event.observe("sidebar_choix3","click",function(){surligne_choix('form_module1');});
     
    	Event.observe("choix_emission","change",function(){surligne_choix('form_module2');});
    	Event.observe("choix_emission","click",function(){surligne_choix('form_module2');});
     
    	Event.observe("choix_theme","change",function(){surligne_choix('form_module3');});
     
    Event.observe("choix_theme","click",function(){surligne_choix('form_module3');});
     
     
    	// Observateur de validation d'un des formulaire
    	Event.observe("btn_valider_choix","click",lancer_recherche);
    </script>
    Le code JS :
    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
     
    function surligne_choix(idForm)
    {	alert(idForm); // Debug, qui s'affiche que sur Firefox !
    	var a=new Array('div_form_module1','div_form_module2','div_form_module3');
    	a.each(	function(elt){ $(elt).setStyle('border:0px; padding:5px; background:transparent'); } ); // Effacer les bordures
     
    	switch(idForm) { // Afficher la bordure demandée :
    		case 'form_module1': 
    			$('div_'+idForm).setStyle('border: 2px solid #8fc513; padding:2px');
    		break;
    		case 'form_module2': 
    			$('div_'+idForm).setStyle('border: 2px solid #9087bc; padding:2px');
    		break;
    		case 'form_module3': 
    			$('div_'+idForm).setStyle('border: 2px solid #2c2c55; padding:2px');
    		break;
    	}
    }
    (Prototype 1.6.03 + scriptaculous 1.8.2)
    Si personne ne répond à votre question, c'est peut-être parce qu'il n'y a pas de solution

  2. #2
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Bonjour,

    Il semble que l'événement click ne soit pas propagé par les select sous safari et ie.
    Peut-être tu peux passer par focus ?
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

  3. #3
    Membre régulier Avatar de youtch
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2002
    Messages : 94
    Points : 90
    Points
    90
    Par défaut
    Après modification du script, la suppression de l'évènement click, tout marche pour le mieux ! Merci du dépannage.
    Si personne ne répond à votre question, c'est peut-être parce qu'il n'y a pas de solution

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/08/2007, 14h58
  2. [AJAX] Incompatibilité avec IE (données non mis à jour)
    Par WeDgEMasTeR dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/05/2007, 19h46
  3. [EasyPHP] Incompatibilite avec Easy php
    Par stomerfull dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 12/12/2005, 12h24
  4. antivirus incompatibilite avec mysql ?
    Par ronando dans le forum Installation
    Réponses: 2
    Dernier message: 20/09/2005, 15h53

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