2013-10-12 3 views
-1

J'ai une liste déroulante de sélection qui contient les noms des sites. Lorsque vous sélectionnez un nom, je souhaite ouvrir une nouvelle page ou un nouvel onglet dans le navigateur de l'utilisateur qui contient la page sélectionnée. Je ne veux pas juste faire un window.location.href = nouvelle page et mettre la nouvelle page dans la fenêtre existante.Saut vers des sites à partir d'une liste déroulante sélectionnée

Je pourrais faire un window.open (url), où url est ce qui a été sélectionné dans la liste déroulante, mais Safari bloque cela comme un popup.

En cliquant sur le nom dans le menu déroulant doit avoir la sauvegarde à cliquer sur le lien

  <a href="/chosen_site" target="_blank">View site</a> 

Quelqu'un at-il des idées sur la façon dont je peux le faire?

Merci

Répondre

0

Qu'est-ce que vous essayez de faire est appelé « pop-up ouvert », donc « bloqueur de pop-up » des blocs de cours, comme il est très gênant pour 99% des utilisateurs (le même que celui ouvert tout lien lorsque utilisateur choisit simplement un objet dans selectbox)

donc la réponse - ne le faites pas, ou ne le font que pour youself en permettant site particulier d'ouvrir des popups

Bien sûr, vous pouvez essayer un certain hack comme annexant <A href="" target="_blank"...> temporaire en html et en émulant cliquez dessus, vérifiez Simulate Click Javascript

0

Mauvaises nouvelles: Si vous voulez qu'il soit ouvert dans un nouvel onglet ou une nouvelle fenêtre (garder à l'esprit que si un nouvel onglet ou une fenêtre est créée, est décidé par le navigateur et vous ne pouvez pas contrôler), Je pense que vous ne pouvez pas le faire sans window.open(). De bonnes nouvelles est qu'en utilisant:

window.open(
    'http://yoursite.com', 
    '_blank' 
); 

permettra d'atteindre ce que vous avez besoin.

Si vous n'avez pas besoin d'ouvrir dans une nouvelle fenêtre, alors document.location.href = "http://yoursite.com" fonctionnerait.

Vous pouvez obtenir ce dont vous avez besoin en faisant ceci: check in fiddle

<select> 
    <option value="">Nothing</option> 
    <option value="http://stackoverflow.com/users/1090562/">me on SO </option> 
    <option value="google.com"> google.com </option> 
</select> 

$("select").change(function(){ 
    var url = $(this).val(); 
    if (url){ 
     window.open(url, '_blank'); 
    } 
}) 
+0

OK, je vais essayer. Merci. Mais comment allons-nous contourner le bloqueur de popup? – Steve

Questions connexes