我有一个包含网站名称的选择下拉列表。当您选择一个名称时,我想要一个新页面或标签,在包含所选页面的用户浏览器中打开。我不想只是做一个window.location.href =新页面并将新页面放在现有窗口中。
我可以做一个window.open(url),其中url是从下拉列表中选择的,但是Safari会阻止它作为弹出窗口。
单击下拉列表中的名称需要具有保存效果,因为单击链接
<a href="/chosen_site" target="_blank">View site</a>
有没有人对我如何做到这一点有任何想法?
由于
答案 0 :(得分:0)
你要做的事情被称为“打开弹出窗口”,所以“弹出窗口阻止程序”当然会阻止它,因为它对99%的用户来说非常烦人(当用户只选择selectbox中的项目时打开任何链接都一样) )
所以答案 - 不要这样做,或者只为自己这样做才允许特定网站打开弹出窗口
当然你可以尝试一些hack,比如将临时<A href="" target="_blank"...>
附加到html中并模仿点击它,检查Simulate Click Javascript
答案 1 :(得分: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');
}
})