后台往前台写弹窗代码不显示
在做一功能的过程中,需要添加信息。想着是提示添加成功后,跳转到别的页面(即用Response.Redirect语句跳转到别的页面)。但是,不论我怎么修改注册客户端脚本弹窗的代码,就是不显示。代码如下(只贴出了注册弹窗Js代码和重定向):
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('添加失败,请联系管理员!" + ex.Message + "');</script>"); Response.Redirect("WaitQueue.aspx");
按照自己的思路,上面的执行顺序应该是先进行弹窗,然后进行页面跳转。
可是事实却是:弹窗不出现。
起初,由于我用了UpdatePanel,所以想着可能需要用scriptmanage里面的静态方法网页面里面写js代码,但是尝试了一下后,还是不行。
在网上搜了一下,原因如下:
虽然response.redirect也借助了客户端脚本实现,但是其优先级是浏览器级别的,要高于用户自定义脚本级别。所以输出的js脚本还没有执行,就已经跳转到WaitQueue界面了。
解决方法就是在往客户端写js代码的时候,将页面跳转自己写一下,而不要采用Response来实现。
代码如下:
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('添加失败,请联系管理员!" + ex.Message + "');location.href='WaitQueue.aspx';</script>");
即:loaction.href='要跳转到的页面URL'。
引用自:http://blog.csdn.net/jianxin1009/article/details/8573380