使用JavaScript多次打开同一窗口

时间:2011-02-05 02:20:07

标签: javascript

我是JavaScript的新手并且正在努力学习。如何使用JavaScript多次打开同一窗口?此外,当我更改功能名称时,它不起作用。

这是功能:

<script type='text/javascript'>
function window(URL) {
    day = new Date();
    id = day.getTime();
    eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=600,height=800,left = 650,top = 250');");
}
</script>

6 个答案:

答案 0 :(得分:3)

尝试这样的事情:

var numWindows = 0;
var windows = new Array(100);
var parameters = "toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=600,height=800,left = 650,top = 250";

function openNewWindow(url) {
    numWindows += 1;
    var title = "Window #"+numWindows;
    windows[numWindows] = window.open(url, title, parameters);
}

要访问窗口,请执行以下操作:

windows[num]

其中num是窗口的id。第一个id是1,第二个是2,依此类推。

答案 1 :(得分:3)

使用随机数可以根据需要多次打开弹出窗口:

function openPopUp (url) {
    var randomno = Math.floor((Math.random()*100)+1); 
    window.open(url,'PopUpWindow'+randomno,'scrollbars=1,menubar=0,resizable=1,width=850,height=500');
}

答案 2 :(得分:2)

尝试省略id参数,如下所示:

<script type='text/javascript'>
    function window(URL) {
        window.open(URL,'','toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=600,height=800,left=650,top=250');
    }
</script>

答案 3 :(得分:2)

window.open()的第二个参数(这里是时间戳)必须不同,否则window.open()会在现有内部加载新窗口(之前用相同的名称打开 - &gt;这是第二个参数分配给窗口的内容。)

您也可以使用“_ blank”作为open()

的第二个参数

答案 4 :(得分:1)

首先,我强烈建议您放弃使用eval。这是非常不安全的,也不好用。

其次,您可以在没有eval的情况下完成此操作:

function openWindow(URL) {
    day = new Date();
    id = day.getTime();
    windowCol[id] = window.open(URL, id, 
        'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=600,height=800,left = 650,top = 250');
}

为了避免混淆,即使“窗口”作为函数名称工作,我建议更改它以使代码更具可读性,因为它可能会与全局窗口对象混淆。

答案 5 :(得分:0)

试试这个。

<script type='text/javascript'>
function window(URL) {
window.open(URL, "_blank", 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=600,height=800,left = 650,top = 250');
}
</script>