C#后台注册脚本
ClientScript.RegisterClientScriptBlock(Type type,string key,string script,bool addScript) (属于ClientScriptManager类)
该方法将客户端代码呈现在页面表单的最前面,也就是这些代码位于所有页面元素之前,这使得脚本最先被浏览器解析
ClientScript.RegisterStartupScript(Type type,string key,string script,bool addScript)(属于ClientScriptManager类)
该方法将客户端代码呈现在页面表单的最末端,页面解析这些脚本时,页面上的各种元素已经完成解析,这就使得这些脚本可以马上操作页面上的元素。
对最上面两个脚本的参数解释:
type:类型:System..::.Type 要注册的启动脚本的类型。
key: 类型:System..::.String 要注册的启动脚本的键。
script:类型:System..::.String 要注册的启动脚本文本。
客户端脚本由它的键和类型唯一标识。具有相同的键和类型的脚本被视为重复脚本。只有使用给定的类型和键对的脚本才能使用该页面进行注册。
试图注册一个已经注册的脚本不会创建重复的脚本。
ScriptManager.RegisterClientScriptBlock: (属于ScriptManager类)
向 ScriptManager 控件注册一个客户端脚本块,以便和 UpdatePanel 控件中的某个控件一起使用,然后将该脚本块添加到页面中。
ClientScriptManager:在 Web 应用程序中定义用于管理客户端脚本的方法。
参见:http://msdn.microsoft.com/zh-cn/library/system.web.ui.clientscriptmanager.aspx
ScriptManager:http://msdn.microsoft.com/zh-cn/library/system.web.ui.scriptmanager(v=VS.90).aspx
Response.write()
一般情况下不用Response.write("<script>alert('Hello Word');</script>"); 因为它在被IE解释完后会在整个网页的最顶层如:
<script>alert('Hello world!');</script>
<!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" >
<head><title>
Page.RegisterStartupScript/Page.RegisterClientScriptBlock这两种方法已经过时
msdn:允许 asp.net 服务器控件在 page 中发出客户端脚本块
详细见:http://hi.baidu.com/ilkikyo/blog/item/2fdb19cbcd386cfe52664f8d.html
对于在页面中使用一次后再次使用不再弹出的解释:
该方法在C#中是这样写的:
public virtual void RegisterStartupScript(string key,string script)
这两个参数一个是用来标识脚本的唯一性,第二个是要发送到客户端的脚本,当出现如上所术的二次不再弹出的问题,肯定是脚本的KEY是相同的,
MSDN:具有相同 key 参数值的任何脚本块均被视为重复的。
地址:http://msdn.microsoft.com/zh-cn/library/system.web.ui.page.registerclientscriptblock(v=VS.80).aspx(RegisterClientScriptBlock)
http://msdn.microsoft.com/zh-cn/library/system.web.ui.page.registerstartupscript(v=VS.80).aspx(RegisterStartupScript)