2011-06-24 39 views
4

我用下面尝试在IE创建一个弹出9如何从Internet Explorer创建一个弹出窗口,9

function popUp(url) { 
    day = new Date(); 
    id = day.getTime(); 
    eval("page" + id + " = window.open(url,'" + id + "','toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=600,height=520,left = 400,top = 200');"); 
    return false; 
} 

这在Chrome中工作正常,Firefox和Safari浏览器 - 但IE 9拒绝打开一个弹出窗口 - 而不是在新选项卡中打开该网址。我已禁用IE9中的弹出窗口阻止程序 - 但上面的函数仍然在新选项卡中打开网址,而不是在弹出窗口中。

有关如何让IE9弹出的任何建议?

+0

http://www.ghacks.net/2010/10/03/internet-explorer-9-tabbed-browsing-settings/说,这是是否弹出窗口在窗口或标签页中打开IE 9中的用户选择。可能无法覆盖用户设置的内容,因此不应该有任何方法,因为没有更好的方式来疏远用户,而不是强制他们不想要的浏览器行为。仅供参考,Firefox还可以选择在新选项卡中打开弹出窗口。 – GordonM

+0

事实上 - 这就是它 - 在常规选项卡的Internet选项 - 为标签设置 - “当遇到弹出:” - 有选项来创建一个弹出窗口或标签。 –

回答

3

此代码似乎在IE9工作(只是检查 - 打开一个新窗口,而不是一个标签):

function popUp(url) { 
    day = new Date(); 
    id = day.getTime(); 
    eval("page" + id + " = window.open(url,'" + id + "','_blank','toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=600,height=520,left = 400,top = 200');"); 
    return false; 
} 

我认为它可能有一些做指示窗口名称,它是由不同现有的窗口。

+0

感谢您的测试。我已经尝试过上述功能,它仍然依赖于Internet Explorer选项卡设置。 Internet选项>选项卡>设置>'让Internet Explorer决定如何打开弹出式窗口'或'始终在新窗口中打开弹出窗口'可以使用任一功能。如果“始终在新标签中打开弹出窗口”已设置 - 则不会强制打开新窗口。 –

+0

我想,如果用户明确设置“总是在新标签页中打开”,那么您就没有任何方法可以覆盖它。毕竟,JavaScript是客户端,客户端可以控制什么是允许的,哪些不是。 –

3

当用户“让Internet Explorer的决定弹出式广告应该如何开放”,这是默认的,设置调整= Yes,将IE9打开一个标签,并调整大小=没有将允许弹出。这可能与我没有测试过的其他属性相同。