强制浏览器在新窗口中打开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下测试就不尽人意了,会发现还是在当前窗口中打开一个新的标签。