在System.Web.UI.Page類中包含了RegisterStarupScript()和RegisterClientScriptBlock()兩個方法,使用這兩個方法可以實現向Web頁面動態添加腳本塊,客戶端腳本按運行方式可以分爲兩類:一類是在加載頁面後立即運行,另一類是在發生客戶端事件後才運行.前者的常見示例是打開頁面時立即彈出一個廣告條;後者的常見示例是當用戶單擊莫按鈕時彈出一個消息框.
RegisterStartupScript()和RegisterClientScriptBlock()兩種方法使用形式如下:
Page.RegisterClientScriptBlock(string key,string script);
參數script: 是將要生成的客戶端腳本塊,它是一個字符串類型.
這兩鍾方法唯一的區別就是生成腳本的位置不同;
(1)RegisterStarupScript()方法
使用RegisterStarupScript()方法用於添加需要在加載頁面後立即運行的腳本塊.通過此方法添加的腳本塊位於Web窗體的結尾處,即</form>標籤之前.例如在頁面Page_Load事件中添加如下代碼:
<HTML>
<HEAD>
<title>Web22</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form name="Form1" method="post" action="Web22.aspx" id="Form1">
<input type="hidden" name="__VIEWSTATE" value="dDwyMTA1NTI4MTE3Ozs+rxjH8qXphIPYQuLSie2igMF+KSU=" />
<FONT face="宋體">
<input name="TextBox1" type="text" id="TextBox1" style="Z-INDEX: 101; LEFT: 464px; POSITION: absolute; TOP: 48px" /></FONT>
<script>alert('歡迎您來到本網站!');</script>
</form>
</body>
</HTML>
使用RegisterClientScriptBlock()方法生成的腳本塊位於Web頁面的開始處,即"<form runat="server">"標籤之後.例如在頁面Page_Load事件中添加如下代碼:
<HTML>
<HEAD>
<title>Web22</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form name="Form1" method="post" action="Web22.aspx" id="Form1">
<input type="hidden" name="__VIEWSTATE" value="dDwyMTA1NTI4MTE3Ozs+rxjH8qXphIPYQuLSie2igMF+KSU=" />
<script>alert('歡迎您來到本網站!');</script>
<FONT face="宋體">
<input name="TextBox1" type="text" id="TextBox1" style="Z-INDEX: 101; LEFT: 464px; POSITION: absolute; TOP: 48px" /></FONT>
</form>
</body>
</HTML>
另外一種方式是爲控件添加觸發條件.如果爲一個Button控件添加"onclick"腳本事件,可在服務器使用"Button.Attributes.Add("onclick",函數名)"語句實現.