我有一个包含母版页的页面。 在页面上是一些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失败。
答案 0 :(得分:2)
replace
参数不是您认为的那样。来自MSDN的引用:
布尔值,指定url是创建新条目还是替换窗口历史列表中的当前条目。该参数仅在url加载到同一窗口时生效。
要打开多个弹出窗口,您需要为每个新弹出窗口使用不同的名称。您可以将已打开窗口的书保存在外部变量中,或者可以使用strField
,无论如何向'Popup'
添加一些内容 - 使其成为唯一的参数。