Window.Open替换失败

时间:2013-12-20 16:52:10

标签: c# javascript asp.net

我有一个包含母版页的页面。 在页面上是一些javascript打开一个新窗口....

         function PopWin() {
        var ddl = document.getElementById("DropDownList1");
        var strField = "";
        if (ddl != null && ddl.selectedIndex > -1 && ddl.options[ddl.selectedIndex] != null)
            strField += ddl.options[ddl.selectedIndex].text;
        var win = window.open('Report.aspx?item=' + strField, 'Popup', 'width=1000,height=700,resizable=yes,top=5,left=5,scrollbars=yes,status=yes', false);
        win.focus();
    }

调用javascript的按钮:

 <asp:Button ID="btnReport" runat="server" Text="Report" UseSubmitBehavior="False"
  OnClientClick="Popwin();" />

javascript的格式是window.open(URL,name,specs,replace) 问题是即使将replace设置为false,它仍然会替换当前窗口。它需要打开一个全新的窗口,让前一个窗口保持完好。

在使用VS 2010和IE 10进行开发时,这可以在我的电脑上运行。 将它放在登台服务器上它失败并在生产服务器上也失败。

我继承了整个应用程序并做了很多修复。旧代码有效。
除了将replace param添加为false之外,将旧版本与新版本进行比较,它是相同的。

只有其他区别是我还添加了更新面板。是的,我删除了它仍然失败了。我甚至清除了浏览器缓存,但仍然失败了。我查看了浏览器中的源代码,并且有新的javascript代码。

还删除了win.focus,它仍然取代了旧窗口。

在服务器上也是FF失败。

1 个答案:

答案 0 :(得分:2)

replace参数不是您认为的那样。来自MSDN的引用:

布尔值,指定url是创建新条目还是替换窗口历史列表中的当前条目。该参数仅在url加载到同一窗口时生效。

要打开多个弹出窗口,您需要为每个新弹出窗口使用不同的名称。您可以将已打开窗口的书保存在外部变量中,或者可以使用strField,无论如何向'Popup'添加一些内容 - 使其成为唯一的参数。