11487 sujets

JavaScript, DOM et API Web HTML5

Pages :
Bonjour,

J'ai sur mon site, un menu déroulant qui ne fonctionne pas sous Firefox Quantum (66.0.2 (64 bits)) mais qui fonctionne parfaitement sous Safari et Chrome et également avec le Firefox sur ma tablette.

Serait-ce dû à une erreur de codage de ma part ou des paramètres de sécurités de Firefox qui bloqueraient ce script. A savoir que tous les autres scripts présents sur mon site fonctionnent quel que soit le navigateur.

Voici un lien vers la page incriminée. C'est le menu déroulant situé en regard de "Select a size for your print": https://www.alaincombemorel.com/prints-for-sale/tre-cime-di-lavaredo-2/

Et voici les codes utilisés:
<div class="print-order">
        <table class="print-select">
        <tr>
        <td>
        <h6><?php echo get_option('select_print','');?></h6>
        </td>
        <td>
        <select id="select">
          <option value="0" data-foo="">Select:</option>
          <?php 
          $dim = get_post_meta($post->ID, 'dimension_small', true);
          $pri = get_post_meta($post->ID, 'price_small', true);
          $buy = get_post_meta($post->ID, 'buy_small_print', true);
          ?>
          <option value="1" data-foo="<?php echo (" price: $pri ");?>"><?php echo "$dim" ;?></option>
          <?php 
          $dimM = get_post_meta($post->ID, 'dimension_medium', true);
          $priM = get_post_meta($post->ID, 'price_medium', true);
          $buyM = get_post_meta($post->ID, 'buy_medium_print', true);
          ?>
        <option value="2" data-foo="<?php echo (" price: $priM ");?>"><?php echo "$dimM" ;?></option>
          <?php 
          $dimL = get_post_meta($post->ID, 'dimension_large', true);
          $priL = get_post_meta($post->ID, 'price_large', true);
          $buyL = get_post_meta($post->ID, 'buy_large_print', true);
          ?>
        <option value="3" data-foo="<?php echo (" price: $priL ");?>"><?php echo "$dimL" ;?></option>
      </select>
      </td>
      <td>
        <span id="foo"></span>
      </td>
      <td>
        <div id="small" style="display:none;"><?php echo do_shortcode($buy); ?></div>
        <div id="medium" style="display:none;"><?php echo do_shortcode( $buyM ); ?></div>
        <div id="large" style="display:none;"><?php echo do_shortcode ($buyL); ?></div>
       </td> 
      </tr>
       </table> 
      </div><!-- print order -->


Et pour la partie javascrip/jquery:

jQuery(document).ready(function (){
   jQuery("select").change(function(){
        var selected = jQuery(this).find('option:selected');
       jQuery('#foo').html(selected.data('foo'));
    }).change();
     jQuery("select").change(function(){
            if(jQuery(this).val()=='1'){
          jQuery('#small').show();
          jQuery('#medium').hide();
          jQuery('#large').hide();
            }else if(jQuery(this).val()=='2'){
              jQuery('#small').hide();
              jQuery('#medium').show();
              jQuery('#large').hide();
                }else if(jQuery(this).val()=='3'){
                  jQuery('#small').hide();
                  jQuery('#medium').hide();
                  jQuery('#large').show();
                  }else{
                    jQuery('#small').hide();
                    jQuery('#medium').hide();
                      jQuery('#large').hide();
                  }
    });
});


Je vous remercie par avance pour votre aide et votre temps
Bien cordialement
Alain
Hello,

Effectivement sur Firefox (même normal) sur PC cela ne fonctionne pas..

Le click et/ou la selection de texte et/ou le click droit ne fonctionne pas. Tu dois avoir un script qui empêche tous cela.
JENCAL a écrit :
Hello,

Effectivement sur Firefox (même normal) sur PC cela ne fonctionne pas..

Le click et/ou la selection de texte et/ou le click droit ne fonctionne pas. Tu dois avoir un script qui empêche tous cela.


Bonjour, merci pour ta réponse. Je vais y jeter un oeil tout de suite.
Mais alors, si j'ai un script qui bloque le click droit, pourquoi ce problème ne se produit que sous Firefox. Ça devrait bloquer sur tous les navigateurs non?
Je viens de désactiver le script bloquant le click droit, cela ne change rien...
Modifié par Wanderer68 (05 Apr 2019 - 14:43)
Ce qui est très chelou,

C'est que j'enlève tous ton code, je laisse uniquement
<body><select id="select" style="/*! display: inline-block; */">
          <option value="0" data-foo="">Select:</option>
                    <option value="1" data-foo=" price: 100€ ">24x30cm</option>
                  <option value="2" data-foo=" price: 150€ " style="display: block;">30x40cm</option>
                  <option value="3" data-foo=" price: 200€ ">40x50cm</option>
      </select>
</body>


et même là ça marche pas. donc c'est plus profond.
JENCAL a écrit :
Ce qui est très chelou,

C'est que j'enlève tous ton code, je laisse uniquement
&lt;body&gt;&lt;select id="select" style="/*! display: inline-block; */"&gt;
          &lt;option value="0" data-foo=""&gt;Select:&lt;/option&gt;
                    &lt;option value="1" data-foo=" price: 100€ "&gt;24x30cm&lt;/option&gt;
                  &lt;option value="2" data-foo=" price: 150€ " style="display: block;"&gt;30x40cm&lt;/option&gt;
                  &lt;option value="3" data-foo=" price: 200€ "&gt;40x50cm&lt;/option&gt;
      &lt;/select&gt;
&lt;/body&gt;


et même là ça marche pas. donc c'est plus profond.


Effectivement, c'est bizarre...
J'avoue que je suis complètement perdu
pourtant j'ajoute un test :

jQuery("#select").on("click",function(){alert("test")});


dans la console firefox, et dès que je clic sur le select, il m'affiche bien l'alerte.
JENCAL a écrit :
pourtant j'ajoute un test :

jQuery("#select").on("click",function(){alert("test")});


dans la console firefox, et dès que je clic sur le select, il m'affiche bien l'alerte.


Je n'ai pas mis de # dans mon code devant select, est ce que ça pourrait-être la cause du problème?
non rien à voir. le # cible l'attribut ID en jquery/css.

si tu laisse "select" il cible la balise portant le nom <select>
Modifié par JENCAL (05 Apr 2019 - 15:03)
JENCAL a écrit :
non rien à voir. le # cible l'attribut ID en jquery/css.

si tu laisse "select" il cible la balise portant le nom &lt;select&gt;


Ok, merci pour cette explication.
Alors.....
J'ai l'impression que c'est l"overlay qui reste.... overlay-shadow
Modifié par JENCAL (05 Apr 2019 - 15:09)
Quand j'active mon "NO SCRIPT" sur firefox,
Je vois l'overlay et je peux donc le "supprimer" du DOM, et à ce moment là la liste déroulante fonctionne très bien.

Par contre si je n'active pas mon "NO SCRIPT" sur firefox, l'overlay je le vois une fraction de seconde. Et j'ai beau le supprimer, cela ne résout rien du tout...
JENCAL a écrit :
Alors.....
J'ai l'impression que c'est l"overlay qui reste.... overlay-shadow


Je vais le supprimer, il n'a aucun rôle sur cette page...
Juste une autre piste, est ce que ça pourrait-être la version de Jquery appelée?
Je viens de remarquer que sur mon site c’est celle-ci qui est demandée: 2.4.0
J'ai vue que tu avais enlever l'overlay... y'a un autre script qui block...
Quand je met mon no-script, la liste déroulante marche bien....

du coup pour savoir quel script ? .... dur dur..
JENCAL a écrit :
J'ai vue que tu avais enlever l'overlay... y'a un autre script qui block...
Quand je met mon no-script, la liste déroulante marche bien....

du coup pour savoir quel script ? .... dur dur..


Je regarde parmi mes plugins, j'ai un soupçon sur un, je vais le désactiver et on verra ce qui se passe
Alors je viens de faire un test plus approfondi avec le plugin activé: c'est une fonction qui bloque avec Firefox: "Disable selection of text".
Ce qui est fou c’est que ça n'affecte que Firefox et aucun autre navigateur. Je vais de ce pas envoyer un message au développeur du Plugin.

Sinon, un grand merci pour ton temps et ton aide.
Je te souhaite une excellente journée
Modifié par Wanderer68 (05 Apr 2019 - 15:38)
Pages :