2012-09-03 4 views
3

Javascript window.open() fonction ouvre le lien sans bloqueur de popup, je veux ouvrir quelques liens de javascript window.open() fonction mais il se bloque sur firefox, chrome, safari.Javascript window.open() fonction ouvre le lien sans bloqueur de popup

Comment puis-je débloquer intempestives code javascript afin qu'il sera ouvre dans un nouvel onglet

Mon code est:

function GoUrl(id) { 
     var string = 'select#' + id + ' option:selected'; 
     var value = $(string).val(); 
     if (value != "links") {enter code here 
      window.open(value, '_blank'); 
      window.focus(); 
     } 
+0

Quand appelez-vous cette fonction? Vous n'êtes pas autorisé à ouvrir de nouvelles fenêtres par programmation, l'appel doit provenir d'une entrée utilisateur (par exemple un clic) – Bergi

Répondre

2

Vous devez lancer vous fonctionnez de l'événement utilisateur. i.e: onclick ou href:

<a href="javascript:window.open('http://google.com');return false;"> open 2 </a> 
2

Vous ne pouvez pas forcer l'ouverture d'un nouvel onglet. La fonctionnalité est entièrement contrôlée par le navigateur.

Pour éviter que vos fenêtres ne soient bloquées, ouvrez la fenêtre sur n'importe quel événement utilisateur (par exemple onclick).

4

Je viens de trouver la réponse d'un autre thread, pensé que je partageais celui-ci avec vous les gars, la SEULEMENT moyen de contourner le bloqueur de pop-up est par l'onclick événement, le problème que je faisais était que je devais onmousedown à la place, je l'ai simplement changé en onclick, et boom! travaillé instantanément!

+2

Ceci est la seule réponse correcte ici. "any" événement-utilisateur ne fonctionnera pas, sinon les spammers utiliseront onmousemove pour afficher les popups. Et en parlant de "onmousedown" - je (et probablement je ne suis pas seul) déteste vraiment les sites qui attachent des événements click à onmousedown, parce que je vois clairement que la réaction se produit avant même que je relâche le bouton de la souris. Si pour une raison quelconque onclick ne fonctionne pas pour vous, alors onmouseup est un bien meilleur événement. Il suffit de vérifier par exemple comment les liens fonctionnent: ils fonctionnent tous lorsque vous relâchez le bouton, pas seulement appuyez sur ... –

+0

btw, l'événement onkeypress devrait également fonctionner. –

Questions connexes