setTimeout的失效问题,无论时间设成多大,都是直接跳转 ,怎么回事?
最近碰到一个问题,就是发现js函数的超时设定失效,比如我下面这段代码
1protected void Page_Load(object sender, EventArgs e)
2 {
3 if (!IsPostBack)
4 {
5 string target = Request.QueryString[ "target "];
6 string info = Request.QueryString[ "info "];
7 if (target != null && info != null)
8 {
9 lbInfo.Text = info;
10 hlRedirect.NavigateUrl =target;
11 ClientScript.RegisterClientScriptBlock(this.GetType(), "startup ", " <script language= 'javascript '> setTimeout(window.location.href= ' " + target + " ',2000) </script> ");
12 }
13 }
14 }
本来我是想在做一个像论坛登录一样,登录成功后会显示“登录成功,稍后转入论坛页……”的简单页面,靠接收Url参数来显示提示内容,和要转入的页面。但程序执行的时候,根本就没有等待,直接就转过去了。后面设那个超时数字无论多大都没有用,我查了相关资料,把超时时间用单引号引起来也没有用。一直很郁闷,不知哪位大哥能指点一下,看是哪出错了。
顺便说一下,会不会是我这个项目是asp.net ajax -enabled web site 有关。
------解决方案--------------------暗暗帮顶
------解决方案--------------------10 hlRedirect.NavigateUrl =target;
这个是做什么的呀?去掉试试
------解决方案--------------------hlRedirect.NavigateUrl =target;
这个的话,浏览器不自动跳转,手动点击跳转~!
------解决方案--------------------可能出现脚本错误了,看看生成的html