var canCloseWindow; function CanCloseWindow() {
if (canCloseWindow == "false") {
window.event.returnValue = "报表正在生成中, 离开当前页面将影响页面的正常浏览.";
}
}<body onunload="CanCloseWindow()">
</body>
我有一页面需要在页面卸载之前去调用一个方法,
判断canCloseWindow状态 ,也就是判断当前页面能否被关闭或者刷新或者离开。
在.net后台如何控制canCloseWindow这个字段的状态呢。????
if (canCloseWindow == "false") {
window.event.returnValue = "报表正在生成中, 离开当前页面将影响页面的正常浏览.";
}
}<body onunload="CanCloseWindow()">
</body>
我有一页面需要在页面卸载之前去调用一个方法,
判断canCloseWindow状态 ,也就是判断当前页面能否被关闭或者刷新或者离开。
在.net后台如何控制canCloseWindow这个字段的状态呢。????
解决方案 »
- if (!addressOK)是什么意思?谁能帮忙解释下,谢谢
- fckeditor2.6.4,出现如下问题
- 输入问题?
- TreeView中绑定了一个XML文件 删除了其中一个接点 但在TREEVIEW中还可以显示 为什么? 文件中已经没了
- 挤出分来,求一Sql语句。
- SqlConnection连接 Sql Server2000的问题
- 模板选择的问题大家里怎么实现的?
- 如何把时间从2004-9-28 15:48:56格式转化为2004年09月28日12:50
- 如何用C#.NET实现全屏播放RealOnePlayer?
- 图片文件是用数据库保存好还是存在文件夹中好?
- asp.net 调用MSN
- GridView 简单问题
后台变量var a="<%=a%>";
</body>
这个写错了
应该是在onbeforeunload事件里。
if (canCloseWindow == "false") {
window.event.returnValue = "报表正在生成中, 离开当前页面将影响页面的正常浏览.";
}
}<body onunload="CanCloseWindow()">
</body>
ClientScript.RegisterStartupScript(GetType(), "CloseWin", "waiting_win='WaitingWin'; CloseWin();", true);你再看看这句就明白了
可是我达不到效果,所以来问大家都是啥解决方案。。
现在就是这么个情况 ,
它需要等整个onclick事件全部处理完毕canCloseWindow才会被赋值。
我以为直接改当时就会被赋值
郁闷中。。
因为我为canCloseWindow 赋值都
是在同一个button的onclick里执行的只不过刚开始进入onclick时,canCloseWindow为false( 也就不能关闭)执行到事件的最后再把canCloseWindow设为true.
可是现在只会等onclick全部执行完才会为canCloseWindow赋一遍值。
就达不到效果
<head runat="server">
<title></title> <script>
var canCloseWindow = "true"; function CanCloseWindow() {
alert(canCloseWindow);
if (canCloseWindow == "false") {
window.event.returnValue = "报表正在生成中, 离开当前页面将影响页面的正常浏览.";
}
}
</script></head>
<body onbeforeunload="CanCloseWindow()">
<form id="form1" runat="server">
<div>
<asp:Button Text="Test" runat="server" ID="btnSubmit" OnClick="btnSubmit_Click" />
</div>
</form>
</body>
</html>
ClientScript.RegisterStartupScript(GetType(), "close", "canCloseWindow='false';", true);
System.Threading.Thread.Sleep(5000);
ClientScript.RegisterStartupScript(GetType(), "open", "canCloseWindow='true';", true);
就像我这段测试代码,运行后的html如下:
<!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><title>
</title>
<script>
var canCloseWindow = "true";
function CanCloseWindow() {
alert(canCloseWindow);
if (canCloseWindow == "false") {
window.event.returnValue = "报表正在生成中, 离开当前页面将影响页面的正常浏览.";
}
}
</script>
</head>
<body onbeforeunload="CanCloseWindow()">
<form name="form1" method="post" action="Default.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMjA0OTM4MTAwNGRkZy2omh+nxtuUEbr2HiezVmBaiZc=" />
</div>
<div>
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAgLc7/6cBALCi9reA9D03Odkhrs/y5xKbk5qLoKuBDyv" />
</div>
<div>
<input type="submit" name="btnSubmit" value="Test" id="btnSubmit" />
</div>
<script type="text/javascript">
//<![CDATA[
canCloseWindow='false';canCloseWindow='true';//]]>
</script>
</form>
</body>
</html>
本来我想的是走到这段代码的时候ClientScript.RegisterStartupScript(GetType(), "close", "canCloseWindow='false';", true); 当前页面就不能被关闭了。可是呢,它会继续把整个button的onclick事件执行完毕所以就把canCloseWindow给赋值为true,这样就达不到效果了。这该咋改改》
System.Threading.Thread.Sleep(5000);
ClientScript.RegisterStartupScript(GetType(), "open", "canCloseWindow='true';", true);=>
System.Threading.Thread.Sleep(5000);
ClientScript.RegisterStartupScript(GetType(), "open", "canCloseWindow='true';", true);
看样子对服务器端.aspx页面生成html这块我完成不熟悉
哎
可是我项目中那个button是工具条里的
像定义onclick只能在后台
button.attribute.add();
这下要加一个服务器端的onclick和一个客户端onclick
这该怎么是好
现在是我一点按钮就提示我是否离开页面。应该是点完按钮之后,在执行完onclick事件之前,如果用户离开页面才提示。
var canCloseWindow = "true",isEnterButton; function CanCloseWindow() {
if (canCloseWindow == "false") {
window.event.returnValue = "报表正在生成中, 离开当前页面将影响页面的正常浏览.";
}
if(isEnterButton){
canCloseWindow='false';
isEnterButton='false';
}
}
</script>
呵呵。这样也行。
厉害。
OnClientClick = button.attribute.add最后一个。
这是啥意思呀?
没见过,。。能写完整些 不
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title> <script>
var canCloseWindow = document.getElementById("hdtxt").value; function CanCloseWindow() {
alert(canCloseWindow);
if (canCloseWindow == "false") {
window.event.returnValue = "报表正在生成中, 离开当前页面将影响页面的正常浏览.";
}
}
function ChangeValue()
{
if(document.getElementById("hdtxt"))
document.getElementById("hdtxt").value="false";
}
</script>
</head>
<body onbeforeunload="CanCloseWindow()">
<form id="form1" runat="server">
<div>
<input type="hidden" id="hdtxt" runat="server" value="true"/>
<asp:Button Text="Test" runat="server" ID="btnSubmit" OnClick="btnSubmit_Click" OnClientClient="ChangeValue();" />
</div>
</form>
</body>
</html>
protected void btnSubmit_Click(object sender,EventArgs e)
{
try
{
this.hdtxt.value="false";
//...
}
catch(Exception ex)
{
//...
}
finally
{
this.hdtxt.value="true";
}
}是这个意思吗?
原来都有写两个方法
OnClick="btnSubmit_Click" OnClientClient="ChangeValue();我当初也有弄一个隐藏字段,可是不是用onClientClick="ChangeValue()"而是用onclick。。
估计就一直错,
哎。要是在后台用button.attribute.add("onclick")这种方式添加方法的话。
如何为一个button同时添加onclick,onclientClick
????
比如:button.attribute.add("onclick","funca();funcb();")
如果可以的话,这两个方法的执行顺序是怎样的?
比如:button.attribute.add("onclick","funca();funcb();")
如果可以的话,这两个方法的执行顺序是怎样的?-----------------------------------------------
function func()
{
funca();
funcb();
...方法N
}button.attribute.add("onclick","func;")//这样随便你几个方法,都可以。
。。太杯具了现在