Partage
  • Partager sur Facebook
  • Partager sur Twitter

Script qui marche sous Firefox mais pas sous Chrome !

Sujet résolu
Anonyme
    5 juillet 2010 à 10:31:47

    Salut,

    Je fais face a un problème plutôt embêtant : j'ai un bout de script JS qui marche sous Firefox, mais pas du tout sous Chrome... Voici le code :

    <span>Trier par administrateur :</span>					
    <select>
    <option onclick="window.location.replace('http://www.page.com/');" <?php if ($tri == 0) {echo 'selected="selected"';} ?>>&nbsp;</option>
    <option onclick="window.location.replace('http://www.page.com/page.php?tri=1');" <?php if ($tri == 1) {echo 'selected="selected"';} ?>>Admin 1</option>
    <option onclick="window.location.replace('http://www.page.com/page.php?tri=2');" <?php if ($tri == 2) {echo 'selected="selected"';} ?>>Admin 2</option>
    <option onclick="window.location.replace('http://www.page.com/page.php?tri=3');" <?php if ($tri == 3) {echo 'selected="selected"';} ?>>Admin 3</option>
    <option onclick="window.location.replace('http://www.page.com/page.php?tri=4');" <?php if ($tri == 4) {echo 'selected="selected"';} ?>>Admin 4</option>							
    </select>
    


    L'idée, c'est qu'en sélectionnant un admin dans la liste, ça redirige automatiquement sur la même page avec un $_GET['tri'] pour trier par admin. Le script marche parfaitement bien sous Firefox, mais sous Chrome rien ne se passe, et je comprends pas pourquoi...
    • Partager sur Facebook
    • Partager sur Twitter
      5 juillet 2010 à 11:11:23

      Salut, onclick sur les sélecteur c'est foireux et lourd.

      <select onchange="window.location=this.value">
      <option value="http://www.page.com">&nbsp;</option>
      <option value="http://www.page.com/uneautrepage">Admin 1</option>					
      </select>
      


      PS: Qu'est-ce que venait faire replace() ici ?
      • Partager sur Facebook
      • Partager sur Twitter
        5 juillet 2010 à 11:11:26

        Normal, le onclick est pas censé marcher sur les options.
        Utilise plutôt l'événement onchange du select, couplé à la propriété selectedIndex du même select (donc un truc dans le genre :
        <select onchange="if (this.selectedIndex == 0) { window.location.replace('http://www.page.com/'); else {window.location.replace('http://www.page.com/page.php?tri=' + this.selectedIndex); }"
        

        (enfin, après, personnellement, j'aime pas le javascript obligatoire, donc je te conseillerais fortement de mettre également un bouton "valider" qui fonctionne & permette à ceux dont le javascript est activé / dont le support du javascript n'est que partiel d'utiliser quand même ton site.

        Edit : oups, pas réfléchi deux secondes, effectivement la solution de LCaba est évidemment meilleure (enfin, en remplaçant éventuellement le window.location = par un window.location.replace; y'a une subtile différence dont je ne me souviens plus, mais il me semble qu'il vaut mieux utiliser le second).

        Edit² : ah bah non en fait, je me souvenais d'un cas particulier, après vérification, le window.location = est à utiliser (sauf si tu veux pas enregistrer tes pages dans l'historique).
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          5 juillet 2010 à 14:37:42

          Ça marche avec le onchange, merci!
          • Partager sur Facebook
          • Partager sur Twitter

          Script qui marche sous Firefox mais pas sous Chrome !

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown