-1

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

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

点击下拉列表中的名字需要和点击链接一样有保存效果

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

有人对我如何做到这一点有任何想法吗?

谢谢

4

2 回答 2

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');
    }
})
于 2013-10-12T00:43:55.603 回答
0

您尝试做的事情称为“打开弹出窗口”,因此“弹出窗口阻止程序”当然会阻止它,因为这对 99% 的用户来说非常烦人(与用户仅在选择框中选择项目时打开任何链接相同)

所以答案-不要这样做,或者通过允许特定站点打开弹出窗口只为你自己这样做

当然,您可以尝试一些技巧,例如将临时附加<A href="" target="_blank"...>到 html 并模拟单击它,检查Simulate Click Javascript

于 2013-10-12T00:33:57.847 回答