基本的Javascript问题:如何打开一个新窗口?

时间:2009-11-25 04:40:20

标签: javascript html

如何在javascript中正确打开新窗口?

我试过了:

<a href='javascript:window.open("testing.html","mywindow","menubar=0,resizable=1,width=200,height=500,left=0,top=0");' >New Window</a>

这会导致弹出一个新窗口,但在Firefox中,它会在原始页面上留下一个空白窗口,上面写着“[object Window]”。我也有IE的问题。

如何打开可在Firefox,IE,Safari和Chrome中运行的窗口?

奖励:如果你可以帮助创建一个javascript可降级的链接(我认为这是一个术语)。

4 个答案:

答案 0 :(得分:3)

javascript:链接非常老派。尝试使用onclick属性。并且不要忘记return false处理程序中的onclick,以防止主页也跟踪链接。

<a href="testing.html" onclick="window.open(this.href,'mywindow','menubar=0,resizable=1,width=200,height=500,left=0,top=0'); return false;">New Window</a>

答案 1 :(得分:3)

通过将脚本放在href属性中,链接将遵循脚本返回值的字符串表示形式。

最向后兼容的方法是将url和target作为常规属性放在链接中,并使用onclick事件打开窗口而不是跟随链接。通过从事件中返回false来阻止链接被跟踪:

<a href="testing.html" target="_blank" onclick="window.open(this.href,this.target,'menubar=0,resizable=1,width=200,height=500,left=0,top=0');return false;">New Window</a>

如果在浏览器中禁用了Javascript,则会在链接后面跟随该链接并在新窗口中打开它。

使用目标_blank打开一个新窗口。

答案 2 :(得分:0)

您可以将void(0)添加到您的javascript代码中,这会阻止浏览器对当前窗口执行任何操作

<a href='javascript:window.open("testing.html","mywindow","menubar=0,resizable=1,width=200,height=500,left=0,top=0"); void(0)' >New Window</a>

答案 3 :(得分:0)

<a href='javascript:(function(){window.open("testing.html","mywindow","menubar=0,resizable=1,width=200,height=500,left=0,top=0")}();' >New Window</a>

或者使它成为一个功能:

<a href="file.html" class="popup">File</a>

<script>window.onload = function(){ 
document.getElementsByTagName('a').onclick = 
function(evt){ el = evt.target; if (el.className == 'popup'){
       window.open(el.href,"mywindow","menubar=0,resizable=1,width=200,height=500,left=0,top=0"); 
       return false; }; };</script>