ASP.NET服務器端向客戶端注冊JS代碼的方法總結


一、用Response.Write方法

這種方法會把JS代碼寫在頁面的最頂部(<html>的前面)

代碼如下:
Response.Write("<script type='text/javascript'>alert("XXX");</script>");
此方法缺陷就是不能調用腳本文件中的自定義的函數,只能調用內部函數,具體調用自定義的函數只能在Response.Write寫上函數定 義,比如
Response.Write("<script type='text/javascript'>function myfun(){}</script>");

提示:以上的腳本在注冊后都會立即執行。

二、用ClientScript類

代碼如下:在想調用某個javascript腳本函數的地方添加代碼,注意要保證MyFun已經在腳本文件中定義過了

MyFun也可以寫在.aspx頁面中,從.aspx.cs文件中向客戶端注冊並立即執行該函數。
ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>MyFun();</script>");

這種方法會把JS代碼嵌入在頁面的底部、表單的最后 (</form>前面),RegisterStartupScript適用於要在頁面控件加載完成后運行的JS代碼 :

或者

ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", MyFun();",true);//true就是添加腳本標記<script></script>
這個方法比Response.Write更方便一些,可以直接調用腳本文件中的自定義函數。

提示:以上的腳本在注冊后都會立即執行。

使用RegisterClientScriptBlock,這種方法會把JS代碼嵌入在頁面的頂部、表單的最前 (<form>后面),適用於要在控件加載前執行的JS代碼,類似於上面的Response.Write方式。

三、普通的添加控件的Attributes屬性

對於普通按鈕就是:Button1.Attributes.Add("onclick","MyFun();");
只能在Onload中或類似於onload的初始化過程中添加才有效。而且是先執行腳本函數,無法改變執行順序。

注意,以上所有方法中,后台代碼都不能有轉化當前頁的代碼,比如Redirect等,要把轉頁代碼放在腳本里面

提示:以上的腳本按鈕點擊后執行。

四、如果要在頁面加載的時候執行js代碼,可以在前台放一個鈎子,然后用后台代碼往里面寫js代碼。如:
后台:
init.InnerHtml = "<script type=\"text/javascript\">alert('yes');</script>";
前台:
<div id="init" style="display:none" runat=server>在后台寫js代碼,做為執行js代碼的鈎子</div>

注意:以上的腳本在注冊后都會立即執行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM