我有一个带有按钮的 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 应用程序),我必须遵守规范。谢谢。