在Javascript中递归调用Window.open。

时间:2012-04-04 05:51:27

标签: javascript html internet-explorer

这是我的Html。当我点击Page1.html时,我需要在新窗口中打开(同一页面)Page1.html。(第一个窗口) 所以我使用window.open()来练习它。它工作并产生第二窗口 但我还需要从第一个窗口创建的第二个窗口打开同一页面(Page1.html)。所以我使用了window.open()它在同一窗口中加载Page1.html。它不会创建任何其他新窗口。在实际情况中,我需要使用A.html中的B.html创建一个新窗口。同样来自Second Window(B.html)我需要用C.html创建另一个窗口。目前B将打开,但C不会创建任何新窗口,它只是在第二个窗口中加载C.html来替换B.html

  <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
    </head>
    <body>
        <script type="text/javascript">
            function ShowPage(pageName) {
                window.open(pageName, null, 'height=400,width=800,status=yes,toolbar=yes,menubar=no,location=no,scrollbars=yes,resizable=yes');
            }
        </script>
        <a id="page1.htm" onclick="ShowPage(this.id);">Click Me</a>
    </body>
    </html>

2 个答案:

答案 0 :(得分:4)

为您打开的每个窗口都设置一个新名称,因为一旦“命名”窗口已经打开,任何使用相同名称的window.open都会在同一窗口中打开内容。

OR

将名称设置为"_blank",以便每次都打开一个新窗口。

可以通过第二个参数(而不是null)设置窗口的名称。


根据此MDN article

  

如果已存在名为strWindowName的窗口,则strUrl将加载到现有窗口中。在这种情况下,方法的返回值是现有窗口,并忽略strWindowFeatures。为strUrl提供空字符串是一种通过名称获取对打开窗口的引用而不更改窗口位置的方法。要在每次调用window.open()时打开一个新窗口,请为strWindowName使用特殊值_blank。

答案 1 :(得分:1)

尝试在window.open()

的第二个参数中使用'_blank'而不是null