2013-10-12 27 views
-1

我有一个包含网站名称的选择下拉列表。当您选择一个名称时,我想要一个新页面或选项卡,以在包含所选页面的用户浏览器中打开。我不想只做一个window.location.href =新页面,并将新页面放在现有的窗口中。从选择下拉列表跳转到网站

我可以做一个window.open(url),其中url是从下拉列表中选择的,但Safari将它作为弹出窗口阻止。

点击下拉名需要有保存效果点击链接

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

有没有人对我怎么能做到这一点有什么想法?

感谢

回答

0

什么你正在试图做的是所谓的“开放式弹出”,所以当然阻止它的“弹出窗口阻止程序”,因为它很讨厌为99%的用户(同为打开的任何链接时,通过允许特定的网站打开弹出式窗口

当然,你可以尝试像追加临时<A href="" target="_blank"...>一些黑客不这样做,或只为youself做到这一点 - 用户只需选择在选择框项目)

所以答案进入html并模拟点击它,检查Simulate Click Javascript

0

坏消息:如果你希望它在新标签或一个新窗口中打开(请记住,是否创建一个新的标签或窗口,由浏览器决定,你无法控制它),如果没有window.open(),我认为你不能这样做。 好消息是通过使用:

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

将实现你所需要的。

如果你不需要在新窗口中打开,那么document.location.href = "http://yoursite.com"将工作。

你可以实现你需要做这个东西: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,我想试试。谢谢。但是我们如何解决弹出式窗口拦截器? – Steve