0

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

4

2 回答 2

1

第二个参数window.open是窗口的名称。您在两个调用中使用相同的名称,因此它试图使用相同的窗口。更改第二次通话的名称,您应该没问题。

于 2011-07-21T15:31:16.593 回答
0

或使用'_blank'名称每次在新窗口中打开!

于 2011-07-21T15:50:02.067 回答