我有一个带按钮的aspx页面。当用户单击该按钮时,以下javascript将打开一个新的浏览器窗口(在本例中为“Reasons.aspx”)。效果很好。这是该部分的功能:
function ShowPanel(url)
{
var width = 750;
var height = 600;
var left = (screen.width - width) / 2;
var top = (screen.height - height) / 2;
var params = 'width=' + width + ', height=' + height;
params += ', top=' + top + ', left=' + left;
params += ', toolbar=no';
params += ', menubar=no';
params += ', resizable=yes';
params += ', directories=no';
params += ', scrollbars=no';
params += ', status=no';
params += ', location=no';
newwin = window.open(url + '?LetterNumber=1&ReasonType=3', 'd', params); //<--- Change This (LetterNumber) When Copying!
if (window.focus)
{
newwin.focus()
}
return false;
}
现在这里变得时髦。弹出此窗口时,会有一些控件。其中一个是按钮,它触发几乎相同的代码以弹出第三个窗口(在本例中为ReasonCodes.aspx)。只有它不会起作用。这是代码:
function fGetReasons(url)
{
var width = 750;
var height = 600;
var left = (screen.width - width) / 2;
var top = (screen.height - height) / 2;
var params = 'width=' + width + ', height=' + height;
params += ', top=' + top + ', left=' + left;
params += ', toolbar=no';
params += ', menubar=no';
params += ', resizable=yes';
params += ', directories=no';
params += ', scrollbars=no';
params += ', status=no';
params += ', location=no';
newwin = window.open(url, 'd', params); //<--- Change This (LetterNumber) When Copying!
if (window.focus)
{
newwin.focus()
}
return false;
}
我在javascript上设置了断点。它确实执行。这是奇怪的 - 上面的javascript执行,只是我没有得到ReasonCodes.aspx的新窗口。但是,我在ReasonCodes.aspx的page_load中设置了一个断点,并且所有断点都在执行。所以javascript执行,第三页的代码隐藏的page_load执行,但我没有得到第三页。
相反,第二个窗口(Reasons.aspx)刷新。这就像我的第三个窗口以某种方式“隐藏”。
有人可以告诉我发生了什么,或者我错过了什么?
谢谢,
杰森
PS - 我知道3个窗口听起来很多,而且不是选择。这里有业务需求(这是本地Intranet应用程序),我必须遵守规范。感谢。答案 0 :(得分:1)
window.open
的第二个参数是窗口的名称。您在两个调用中使用相同的名称,因此它尝试使用相同的窗口。更改第二个电话的名称,你应该没事。
答案 1 :(得分:0)
或者在新窗口中使用'_blank'名称每次打开!