强制浏览器在新窗口中打开url

需求前提:

有一个页面,里面分为N个功能与N个任务。功能模块链接单击应该在当前窗口中新开标签,而单击任务需要新开一个窗口。在任务窗口中再单击其他的链接应该在这个任务窗口中新开标签。

1、起初使用以下方法:

<a href="b.html" target="_blank">新开标签中打开功能</a>
<a href="###" onclick="openWindow();">新开窗口打开一个任务</a>
<script type="text/javascript">
    function openWindow() {
        var height = window.screen.availHeight,
            width  = window.screen.availWidth;
            
        window.open('c.html', '任务', 'height=' + height + ',width=' + width);
    }
</script>

单击【新开标签中打开功能】链接,会在新标签中打开,虽然设置了target='_blank',但也会新开标签,当单击【新开窗口打开一个任务】时,会使用window.open来打开一个新的窗口。看似挺完美的解决方案,但如果再往下进行就会出问题。我们在c.html中再打开一个链接时,在Firefox16.0.2下会直接在母窗口中打开一个标签。而ie8/9会再开一个新窗口,也就是说,window.open打开的窗口不支持标签,即新开的窗口就仅仅是一个窗口。

2、使用跳转,即window.open打开一个临时窗口d.html,在这个d.html中再使用form来打开一个新窗口,理论上是可行。

<form id="myForm" name="myForm" action="c.html" target="_blank">
</form>
<script type="text/javascript">
    document.myForm.target = '_blank';
    document.myForm.submit();
    window.close();
</script>

使用ie8/9测试,还算是可以,虽然新开的窗口不能充满整个显示器,但能够满足我们的需求。但在firefox下测试就不尽人意了,会发现还是在当前窗口中打开一个新的标签。

posted @ 2012-11-13 10:38  AUOONG  阅读(2349)  评论(0编辑  收藏  举报