Je suis en train de vivre tout à fait une drôle de problème avec <select>
menus. Quand je vais retourner à une page contenant un <select>
après que j'ai cliqué en dehors (ou réduite) l' <select>
parfois s'effondre et ne répond pas. J'ai vérifié l'ensemble de mon code, et il est 100% valide, ensuite j'ai vu cela sur d'autres sites.
J'ai vécu <select>
menus de s'effondrer dans la dernière version de Safari (disponible pour OSX 10.6.8) ainsi que les dernières versions de Chrome et Firefox (testé à la fois sur Windows Vista et mac OSX 10.6.8). Curieusement je n'ai pas été en mesure de reproduire l' <select>
effondrement de Chrome fonctionnant sur Windows 8... Une dernière curiosité: il semble que la longueur de l' <select>
élément affecte la probabilité du menu s'effondrer (c'est-à-dire, le plus <option>
éléments <select>
, le plus elle est susceptible de s'effondrer. Parfois, un <select>
menu va s'effondrer après sélection et cliqué de fois, parfois, il peut prendre 5 ou 6 tentatives.
Ma question est: Quelles sont les causes de cette <select>
effondrement problème, et est-il connu contourner? Voir l'exemple de code ci-dessous, c'est très simple, mais l' <select>
menu a néanmoins s'est effondré dans les navigateurs/systèmes d'exploitation je l'ai mentionné plus tôt. Merci à l'avance!
<!doctype html>
<html>
<head>
<title>Select Test</title>
</head>
<body>
<select name ="Test">
<option value = "0">0</option>
<option value = "1">1</option>
<option value = "2">2</option>
<option value = "3">3</option>
<option value = "4">4</option>
<option value = "5">5</option>
<option value = "6">6</option>
<option value = "7">7</option>
<option value = "8">8</option>
<option value = "9">9</option>
<option value = "10">10</option>
<option value = "11">11</option>
<option value = "12">12</option>
<option value = "13">13</option>
<option value = "14">14</option>
<option value = "15">15</option>
<option value = "16">16</option>
<option value = "17">17</option>
<option value = "18">18</option>
<option value = "19">19</option>
<option value = "20">20</option>
<option value = "21">21</option>
<option value = "22">22</option>
<option value = "23">23</option>
<option value = "24">24</option>
<option value = "25">25</option>
<option value = "26">26</option>
<option value = "27">27</option>
<option value = "28">28</option>
<option value = "29">29</option>
<option value = "30">30</option>
<option value = "31">31</option>
<option value = "32">32</option>
<option value = "33">33</option>
<option value = "34">34</option>
<option value = "35">35</option>
<option value = "36">36</option>
<option value = "37">37</option>
<option value = "38">38</option>
<option value = "39">39</option>
<option value = "40">40</option>
<option value = "41">41</option>
<option value = "42">42</option>
<option value = "43">43</option>
<option value = "44">44</option>
<option value = "45">45</option>
<option value = "46">46</option>
<option value = "47">47</option>
<option value = "48">48</option>
<option value = "49">49</option>
<option value = "50">50</option>
<option value = "51">51</option>
<option value = "52">52</option>
<option value = "53">53</option>
<option value = "54">54</option>
<option value = "55">55</option>
<option value = "56">56</option>
<option value = "57">57</option>
<option value = "58">58</option>
<option value = "59">59</option>
<option value = "60">60</option>
<option value = "61">61</option>
<option value = "62">62</option>
<option value = "63">63</option>
<option value = "64">64</option>
<option value = "65">65</option>
<option value = "66">66</option>
<option value = "67">67</option>
<option value = "68">68</option>
<option value = "69">69</option>
<option value = "70">70</option>
<option value = "71">71</option>
<option value = "72">72</option>
<option value = "73">73</option>
<option value = "74">74</option>
<option value = "75">75</option>
</select>
</body>
</html>
Mise à jour:
Voici une capture d'écran d'un effondrement de l'/ne répond plus <select>
menu Safari 5.1.9 fonctionne sur OSX 10.6.8 (c'est un mac autre que celui que j'utilisais avant). Il est devenu insensible au bout de 3 tentatives (sélectionner une option, puis en cliquant sur sortir du navigateur). Il ne révèle pas la liste des options, lorsque vous cliquez dessus, et est complètement insensible jusqu'à ce que la page est rechargée. Je vais être le téléchargement de google chrome sur mac peu de temps.
Mise à jour 2: Selon @webdad3, ce problème est également présent dans IE9
Mise à jour 3:
Voici un lien vers le code source que j'ai posté ci-dessus, mais dans JSbin. Gracieuseté de @starbeamrainbowlabs.
http://jsbin.com/eXOMeRI/1/edit
Mise à jour 4:
Selon @Zarazthuztra, ce problème est également présent dans OS x 10.8.
Mise à jour 5:
Je prends @cloudcoder2000 des conseils et de l'affichage de ce lien dans la question elle-même. Je crois qu'il montre qu'un <select>
ne devrait pas s'effondrer (comme beaucoup d'entre nous connaissent) quel que soit le nombre d' <option>
s il contient.
Est-il un nombre maximum d'options (les valeurs) en HTML déroulant contrôle?
Je tiens aussi à remercier tout le monde pour leur aide jusqu'à présent.
Jour 6: Je crains que cette question commence à stagner... Si quelqu'un a des théories sur ce qui est à l'origine de ce problème (indépendamment de la façon dont "off-the-wall" il peut sembler) faites le moi savoir et je vais le tester dès que possible.
Jour 7: Juste de confirmer: j'ai connu ce effondrement problème sur plusieurs pages que ne pas utiliser de Javascript. De plus, l'exemple de code que j'ai posté ci-dessus (qui ne contiennent pas de Javascript), s'est effondré, pour moi et quelques autres stackoverflow utilisateurs (à travers différents systèmes d'exploitation et navigateurs).
Jour 8:
@Capile a été en mesure de reproduire l'effondrement question dans Safari 7.0.1 fonctionnant sur Mac OS X 10.9.1.
Jour 9:
En utilisant @Capile du code, j'ai été en mesure d'obtenir l' <select>
à "développer" dans Safari 5.1.10 (fonctionne sur OSX 10.6.8). Veuillez lire sa réponse pour plus de détails. Je vais tester son code dans Chrome et Firefox plus tard aujourd'hui ou demain. C'est vraiment prometteur, je pense que nous nous approchons de la solution de ce. Je voudrais juste remercier tout le monde pour leur aide jusqu'à présent, les gars, vous êtes super!
Mise à jour 10:
J'ai finalement eu la chance de tester @Capile du code de Chrome sur un de mes Snow Leopard (10.6.9) les machines. J'ai eu un peu de mal à obtenir le <select>
à l'effondrement de ce temps, mais après quelques minutes d'essai, il l'a finalement fait. Après le collage, son code dans la console de l' <select>
"uncollapsed" (c'est comme inélégante que possible). C'est assez curieux, parce que si cet "effondrement" problème est lié à niveau du système de collecte des ordures, alors on pourrait penser que l' <select>
serait "l'effondrement" de façon assez constante sur tous les navigateurs, mais ce n'est pas le cas. J'ai testé une multitude de navigateurs (à travers de multiples systèmes d'exploitation) et <select>
"effondrement" paraît extrêmement commun dans certains navigateurs (comme Safari)... je suis certes pas un expert programmeur donc je me trompe peut-être, mais en tout cas, je voulais juste mettre à jour cette question, de sorte que plus les esprits pourraient penser les nouvelles informations.
Mise à jour 11:
J'ai juste ajouté une prime à cette question dans une tentative de générer plus d'intérêt (j'espère que cela aide). De toute façon, j'ai été en mesure d'obtenir l' <select>
à s'effondrer dans la dernière version de Firefox (en cours d'exécution sur OSX 10.6.9) la nuit dernière. Je n'ai malheureusement pas la chance de tester @Capile du code de Firefox, mais je vais essayer de le faire aujourd'hui.