Response.Write("<script>...</script>")弹框可实现网页弹框效果,有时页面css会失效,导致页面异常难看。
以下为网页讨论:
1、用Response.Write直接输出,它输出时直接在html文件头里面,容易出现错误;
2、.net中使用response.write输出js会将js放在源代码的最前面,这样就可能出现破坏网页css的效果,让css失去效果;
.net中使用Page.ClientScript.RegisterStartupScript(this.GetType(), "", " <script lanuage=javascript>if(confirm('确定要交卷吗?')==false){history.back()}; </script>"); 可以解决页面变型或是css失效的问题,但是代码会继续执行后面的程序。
3、Response.Write(" <script>... </script>"),这样输出的脚本,只能是在页面最顶部 html之外,这样做很多时候脚本会出错的!
使用 Page.ClientScript.RegisterClientScriptBlock
或者 Page.ClientScript.RegisterStartupScript、
是在页面的合适位置输出脚本,例如:
protected void Page_Load(object sender, EventArgs e)
{
string myScript = @”alert(document.forms[0][‘TextBox1’].value);”;
Page.ClientScript.RegisterStartupScript(this.GetType(),“MyScript”, myScript, true);
}
这样做的好处是可以在页面的正确位置输出这一段脚本,当然不会出错啦;
4、response.write是在页面的最上面输出结果
Page.ClientScript.RegisterStartupScript实在页面加载结束后输出结果
如果在HTML的标准是<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">的时候(VS2003的时代)那么使用response.write和Page.ClientScript.RegisterStartupScript在效果上面是没有问题的
在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">的时候(VS2005和以后的版本)
response.write就会报错
5、Response.Write这种方式是很多初学都用的方法,肯定的告诉你,就不应该这么用.
用Response.Write写出来的Javascript你可以把HTML源码打开看一下,在<html>的前面,如果你在页面上用了Css你可以发现这条语句可以让你的页面变的面目全非。
正确的用法是ClientScript的方式。
6、 RegisterClientScriptBlock在<form runat=server>之后,
而RegisterStartupScript在</form>之前
原文讨论链接:http://bbs.csdn.net/topics/290044898点击打开链接