如题,我想在ASP.NET(C#)的.aspx里面的js函数中实现这个功能.
PS:“由这个页面通过window.open打开的页面”是在.cs中通过Response.Write打开的,如:
Response.Write("<script language='javascript'>window.open('"+"abc.aspx?" +"id=" + id.ToString()+"')</script>");
PS:“由这个页面通过window.open打开的页面”是在.cs中通过Response.Write打开的,如:
Response.Write("<script language='javascript'>window.open('"+"abc.aspx?" +"id=" + id.ToString()+"')</script>");
一直拿着这个返回.
在关闭是把这个返回也关掉.
var a = window.open();
a.close();
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript">
var wins = [], n = 0;
function newWin(){
wins[n++] = window.open("http://www.baidu.com");
}
function closeWin(){
for(var i=0; i<n; i++){
wins[i].close();
wins[i] = null;
}
n = 0;
window.opener = null;
window.close();
};
/* 窗口关闭前调用
window.onbeforeunload = function(){
closeWin();
};*/
</script>
</head>
<body>
<input type="button" value=" 新建窗口 " onclick="newWin();" />
<input type="button" value=" 关闭 " onclick="closeWin();" />
</body>
</html>
我也想到用数组,但是问题是我的页面是在.CS里面用语句打开的,具体的说的一个datagrid里面的模板列中的按钮而不是页面上的某个单独按钮。这个怎么存到html文件的js函数的数组中啊?
哪位写两句代码具体的代码吧
附加:每次点击datagrid模板列的按钮页面就要刷新一次,在js中定义的变量值也没有了,我要打开几个页面的话,最后实际上只能保存最后打开那个窗口的句柄,怎么办?
当检测不到window.opener的时候就自己关掉吧...
function test()
{
if(window.opener!=null)
{
alert(window.opener);
setTimeout('test()', 1000);
}
else
{window.close();}
}
可是就算我关了A,B也没有关,alert(window.opener);仍然返回[object]。是哪里写错了么?
<script language="javascript">
<!--
window.onload=test();
function test()
{
if(opener)
{
if(opener.closed==false)
{
setTimeout('test()', 1000);
}
else{window.close();}
}
else{window.close();}
} //-->
</script>
natineprince 的方法是目前最好的解决办法了,谢谢大家帮助。