单击页面时我在页面上有一个按钮,它将执行一组命令,然后打开一个弹出页面。
protected void Button2_Click(object sender, EventArgs e)
{
/*set of commands*/
string arry = String.Join(",", ((string[])a1.ToArray(typeof(String))));
string url = "AreaGridValue.aspx?list="+ arry;
string s = "window.open('" + url + "', 'popup_window', 'width=300,height=100,left=100,top=100,resizable=yes');";
ClientScript.RegisterStartupScript(this.GetType(), "script", s, true);
}
现在,我想在关闭弹出窗口后执行更多代码集,如何在不丢失父页面中的值的情况下执行该操作。
答案 0 :(得分:1)
您可以将打开的弹出窗口命名为:
var popup = window.open('" + url + "', 'popup_window', 'width=300,height=100,left=100,top=100,resizable=yes');
,然后使用setInterval()
检查窗口是否关闭并运行其他代码:
var int = setInterval(function(){ if(popup.closed === true) { clearInterval(int); /*write your code here*/} } ,50);
我省略了将这些代码放在c#字符串中的部分,并将javascript部分写为c#部分中的新内容。
所以最终它将是这样的:
string url = "AreaGridValue.aspx?list="+ arry;
string s = "var popup = window.open('" + url + "', 'popup_window', 'width=300,height=100,left=100,top=100,resizable=yes');";
s += "var int = setInterval(function(){ if(popup.closed === true) { clearInterval(int); alert('popup closed');} } ,50);";
ClientScript.RegisterStartupScript(this.GetType(), "script", s, true);
因此,当关闭弹出窗口时,将执行setInterval
中的函数,并且在上面的示例中将显示一条警告,指出“弹出窗口已关闭”。