web-dev-qa-db-fra.com

onclick = "location.href = 'link.html'" ne charge pas la page dans Safari

Je ne parviens pas à obtenir onclick="location.href='link.html'" pour charger une nouvelle page dans Safari (5.0.4).

Je construis un menu de navigation déroulant à l'aide des balises HTML <select> et <option>. J'utilise le gestionnaire onclick pour charger une nouvelle page après avoir cliqué sur un élément de menu, mais rien ne se passe dans Safari. (J'ai testé avec succès dans FF et Opera.) Je sais qu'il existe de nombreux bogues onclick dans Safari, mais je n'ai trouvé aucune solution permettant de résoudre ce problème spécifique.

Vous pouvez voir un exemple de mon code ci-dessous:

<select>
    <option onclick="location.href='unit_01.htm'">Unit 1</option>
</select>

et

<select>
    <option onclick="location.href='#5.2'">Bookmark 2</option>
</select>

Je ne veux pas (et ne préfère pas) avoir de javascript incorporé dans la section head de mon code HTML. Je développe la page pour quelqu'un qui ne sait pas utiliser javascript - plus le code est simple, mieux c'est. .)


Quel code JavaScript rendrait l'élément de menu cliquable dans tous les navigateurs? (Veuillez vérifier la compatibilité avec IE.)

38
Brandon Lebedev

Utilisez jQuery .... Je sais que vous dites que vous essayez d'enseigner à quelqu'un du javascript, mais que vous lui apprenez une technique plus propre ... par exemple, je pourrais:

<select id="navigation">
    <option value="unit_01.htm">Unit 1</option>
    <option value="#5.2">Bookmark 2</option>
</select>

Et avec un peu de jQuery, vous pourriez faire:

$("#navigation").change(function()
{
    document.location.href = $(this).val();
});

Discret et séparation nette de la logique et de l'interface utilisateur.

34
Matthew Abbott

Essaye ça:

onclick="javascript:location.href='http://www.uol.com.br/'"

Cela a bien fonctionné pour Firefox, Chrome et IE (wow !!)

113
Rafael Zottesso

Essayez ceci:

<option onclick="parent.location='#5.2'">Bookmark 2</option>
5
Richard Hedges

Vous pouvez essayer ceci:

 <a href="link.html">
       <input type="button" value="Visit Page" />
    </a>

Cela créera un bouton dans un lien et cela fonctionnera sur n'importe quel navigateur.

3
garatu

J'ai eu la même erreur. Assurez-vous de ne pas avoir <input>, <select>, etc. name="location".

2
Jacob NP

essayer

<select onchange="location=this.value">
    <option value="unit_01.htm">Unit 1</option>
    <option value="#5.2" selected >Bookmark 2</option>
</select>
0
Kamil Kiełczewski