我有一个页面打开一个弹出窗口,弹出窗口根据查询字符串参数通过处理页面上的数据创建谷歌地图,创建地图后,它使用webmethod / ajax保存到指定位置,弹出窗口使用settimeout函数自动关闭
这仅适用于单个请求/单个弹出窗口。
我有很多行说10行我打开每行的弹出窗口并希望关闭使用计时器(仅在成功创建/保存img之后)。
MainPage.aspx
//someloop here for iterating rows
foreach(..)
{
CallMap(packageid, latitudelangitude);
Thread.Sleep(1000);
}
int i = 1;
protected void CallMap(string packageid, string latitudelangitude)
{
string url = "http://localhost:58715/mymap.aspx?pkg=" + packageid + "&data=" + latitudelangitude;// +"&t=" + i;
string fullURL = "window.open('" + url + "', '_blank', 'height=600,width=1000,status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes,titlebar=no' );";
ClientScript.RegisterStartupScript(this.GetType(),
"newWindow" + i++, String.Format("<script>" + fullURL + "</script>", string.Empty));
}
mymap.aspx
$(document).ready(function () {
initialize();
setInterval(function () { window.close() }, 2000);
});
这里,计时器同时对所有10个窗口都超时。如何为同一页面的不同窗口实例重置不同的计时器?
答案 0 :(得分:0)
由于
,计时器会在同一时间关闭窗口setInterval(function () { window.close() }, 2000);
当所有窗口使用相同的启动脚本ClientScript.RegisterStartupScript
打开时,它们将同时打开并以相同的间隔(即2000毫秒)关闭。取决于您的要求,您需要以不同方式打开窗口或在另一个事件上关闭它们。目前,您的要求
想要关闭使用计时器(仅在成功创建/保存img之后)。
似乎无效,因为在“已成功创建/保存img”的代码中没有触发器。