-2

我试图让 IE 将我的弹出窗口居中,以下代码将打开该窗口:

function open_win()
{
    window.open("http://google.com","_blank","toolbar=no, location=no, directories=no,     status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=640, height=560");
}

但是如果我这些变量:

function open_win(pageURL, title,w,h)
{
    var left = (screen.width/2)-(w/2);
    var top = (screen.height/2)-(h/2);
    window.open("http:google.com","_blank","toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=640, height=560");

}

那么 IE 将不会打开新窗口。当我在任何地方添加变量时它停止工作。WTF 与 IE 一起使用它真的让我很生气,所有其他浏览器都可以接受这些变量。

4

2 回答 2

1

如果您将无效值传递给该函数,则会在其中引发错误。例如,假设我传递一个字符串或undefined作为w参数。您希望在函数中成为数字的变量将变为NaN.

那里可能会发生错误,如果是这样,则window.open可能不会进行调用。因此,清理您的输入,并检查调用该函数的逻辑以查看发生了什么。

此外,控制台是您的朋友。您更改了函数的签名,我们还没有看到在您的问题中调用它的代码。如果您正在操纵参数,则可能由于错误而不再调用该函数。因此,请同时包含您在控制台中看到的任何错误。

于 2013-10-15T17:25:44.550 回答
0

你应该包括:

"top=" + top + ", left=" + left 

提琴手

function open_win(pageURL, title,w,h)
{
    var left = (screen.width/2)-(w/2);
    var top = (screen.height/2)-(h/2);
    window.open("http://www.google.com","_blank","toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=640, height=560, top=" + top + ", left=" + left);

}
于 2013-10-15T17:25:22.043 回答