日期:2014-05-18  浏览次数:20517 次

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