RegisterStartupScript和RegisterClientScriptBlock區別(ZZ)

來源:互聯網
上載者:User
RegisterStartupScript(key, script) 
RegisterClientScriptBlock(key, script)
這兩個方法的作用都是從前台向後台寫指令碼,且都接受兩個相同的參數:     第一個參數 key 是插入的用戶端指令碼的唯一識別碼。     第二個參數 script 是要插入到頁面中的用戶端指令碼內容,包括 <script> 的起始標記和終止標記</script>。        這兩個方法唯一的不同之處在於向“何處”註冊指令碼塊。         RegisterClientScriptBlock(key, script) 在 form開始處(緊接 <form runat="server"> 標識之後)發送指令碼塊               使用情境:               一般不使用DOM元素         RegisterStartupScript(key, script) 在 form結尾處(在 </form> 標識之前)發送指令碼塊,在document裝載完成後會執行,等價於body.onload=f(){}裡的內容         使用情境:               一般要使用DOM元素,比如:修改dom元素的值等

——————————————————————————————————————————————————————————————————————

Page.ClientScript.RegisterClientScriptBlock & Page.ClientScript.RegisterStartupScript


1、使用Page.ClientScript.RegisterClientScriptBlock
RegisterClientScriptBlock方法可以把JavaScript函數放在頁面的頂部。也就是說,該指令碼用於在瀏覽器中啟動頁面。

<%@ Page Language="C#" %>
<script runat="server">
protected void Page_Load(object sender,EventArgs e)
{
string myScript = @"function AlertHello() { alert('Hello ASP.NET'); }";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),
"MyScript",myScript,true);
}
</script>

在這個例子中,把JavaScript函數AlertHello()建立為一個字串myScript。然後使用Page. ClientScript.RegisterClientScriptBlock方法編寫放在頁面上的指令碼。RegisterClientScriptBlock方法的兩個構建方式如下:
● RegisterClientScriptBlock (type,key,script)
● RegisterClientScriptBlock (type,key,script,script tag specification)

4.4.2 使用Page.ClientScript.RegisterStartupScript
RegisterStartupScript方法與RegisterClientScriptBlock方法的區別不大。最大的區別是RegisterStartupScript把指令碼放在ASP.NET頁面的底部,而不是頂部。實際上,RegisterStartup Script方法甚至使用與RegisterClientScriptBlock方法相同的建構函式:
● RegisterStartupScript (type,key,script)
● RegisterStartupScript (type,key,script,script tag specification)
那麼,在頁面上註冊指令碼的過程有什麼區別?實際上區別很大!
如果在頁面上有一些處理控制項的JavaScript,在大多數情況下應使用RegisterStartupScript方法,而不是RegisterClientScriptBlock方法。
就是,尋找、調用頁面控制項的時候,就使用 Page.ClientScript.RegisterStartupScript

4.4.3使用Page.ClientScript.RegisterClientScriptInclude
最後一個方法是RegisterClientScriptInclude。許多開發人員都把JavaScript放在.js檔案中,這是最好的方式,因為很容易把對JavaScript的修改應用於整個應用程式。使用RegisterClientScriptInclude方法可以在ASP.NET頁面上註冊指令檔,如下所示。
string myScript = "myJavaScriptCode.js"
Page.ClientScript.RegisterClientScriptInclude("myKey",myScript);

____________________________________________________________________________________________________________________

From MSDN:

<%@ Page Language="C#"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">  public void Page_Load(Object sender, EventArgs e)  {    String csname1 = "PopupScript";    String csname2 = "ButtonClickScript";    if (!IsClientScriptBlockRegistered(csname1))    {        String cstext1 = "<script type=\"text/javascript\">" +            "alert('Hello World');</" + "script>";        RegisterStartupScript(csname1, cstext1); //未使用了DOM元素,和上面說法相矛盾
} if (!IsClientScriptBlockRegistered(csname2)) { StringBuilder cstext2 = new StringBuilder(); cstext2.Append("<script type=\"text/javascript\"> function DoClick() {"); cstext2.Append("Form1.Message.value='Text from client script.'} </"); cstext2.Append("script>"); RegisterClientScriptBlock(csname2, cstext2.ToString()); //使用DOM元素 } }</script><html > <head> <title>RegisterClientScriptBlock Example</title> </head> <body> <form id="Form1" runat="server"> <input type="text" id="Message" /> <input type="button" value="ClickMe" onclick="DoClick()" /> </form> </body></html>
1、使用Page.ClientScript.RegisterClientScriptBlock
RegisterClientScriptBlock方法可以把JavaScript函數放在頁面的頂部。也就是說,該指令碼用於在瀏覽器中啟動頁面。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.