ASP.NET Javascript:window.open将不会工作两次

时间:2011-07-21 15:27:55

标签: javascript asp.net vb.net hidden window.open

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

2 个答案:

答案 0 :(得分:1)

window.open的第二个参数是窗口的名称。您在两个调用中使用相同的名称,因此它尝试使用相同的窗口。更改第二个电话的名称,你应该没事。

答案 1 :(得分:0)

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