我有一个 C# aspx Web 应用程序,它使用 JavaScript 打开一个弹出窗口。我捕获窗口句柄并将该值放入数组中。当 Web 应用程序关闭时,我想关闭弹出窗口。当我查询数组时,窗口句柄不再在数组中,所以我找不到关闭它的窗口。这种行为对我来说很奇怪,因为其他弹出窗口(不包含 silverlight)将保留在数组中,并在应用程序结束时关闭。
起初,我认为这是可以通过框架解决的问题,例如无法关闭包含 PDF 的弹出窗口,但该解决方案不适用于我。这是我必须在 PDF 中使用的东西
问:aspx 主窗口关闭时,如何关闭包含 Silverlight 的弹出窗口?
一些 JavaScript 代码:
var openedWindows = new Array();
function OpenNamedWindow(url, name, features, replace)
{
var oWin = open(url, name, features, replace);
// The Silverlight window object is within this array afterwards, and in subsequent calls
// to this method
openedWindows.push(oWin);
}
function CloseOpenedWindows()
{
while (openedWindows.length > 0)
{
var window = openedWindows.shift();
if(!window.closed)
window.close();
}
}
主要的 aspx 形式(缩写)
<html>
<body onunload="CloseOpenedWindows();"> ... <body/>
</html>