Response.Write()和Page.ClientScript.RegisterStartupScript弹框讨论

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点击打开链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值