ASP.NET中后臺注冊js腳本使用的方法對比
更新時間:2013年04月28日 16:27:59 作者:
接下來為大家介紹下使用Page.ClientScript.RegisterClientScriptBlock 和Page.ClientScript.RegisterStartupScript:區(qū)別
用Page.ClientScript.RegisterClientScriptBlock 和Page.ClientScript.RegisterStartupScript:區(qū)別:
1.使用Page.ClientScript.RegisterClientScriptBlock
c#代碼
<%@ 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>
運行結(jié)果如下:
<html xmlns=”http://www.w3.org/1999/xhtml” >
<head><title>
Adding JavaScript
</title></head>
<body>
<form method=”post” action=”JavaScriptPage.aspx” id=”form1”>
<div>
<input type=”hidden” name=”__VIEWSTATE”
value=”/wEPDwUKMTY3NzE5MjIyMGRkiyYSRMg+bcXi9DiawYlbxndiTDo=” />
</div>
<script type=”text/javascript”>
<!--
function AlertHello() { alert(‘Hello ASP.NET'); }// -->
</script>
<div>
<input type=”submit” name=”Button1” value=”Button” onclick=”AlertHello();”
id=”Button1” />
</div>
</form>
</body>
</html>
2.使用Page.ClientScript.RegisterStartupScript
RegisterStartupScript 方法與RegisterClientScriptBlock方法最大的不同是:RegisterStartupScript 把script放置在 ASP.NET page的底部,而RegisterClientScriptBlock把script放置在ASP.NET page的頂部。
如果你的頁面中有如下代碼:
<asp:TextBox ID=”TextBox1” Runat=”server”>Hello ASP.NET</asp:TextBox>
c#
protected void Page_Load(object sender, EventArgs e)
{
string myScript = @”alert(document.forms[0][‘TextBox1'].value);”;
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), “MyScript”, myScript, true);
}
此頁面運行時會報錯,原因是JavaScript function先于text box被安放于瀏覽器。因此JavaScript function找不到TextBox1。
c#
protected void Page_Load(object sender, EventArgs e)
{
string myScript = @”alert(document.forms[0][‘TextBox1'].value);”;
Page.ClientScript.RegisterStartupScript(this.GetType(), “MyScript”, myScript, true);
}
這段代碼把JavaScript function放置于ASP.NET page底部,因此JavaScript運行時它能找到TextBox1。
3.使用Page.ClientScript.RegisterClientScriptInclude
許多開發(fā)者把JavaScript放置在.js文件中,使用RegisterClientScriptInclude方法可以注冊.js文件中的JavaScript。
c#
string myScript = “myJavaScriptCode.js”
Page.ClientScript.RegisterClientScriptInclude(“myKey”, myScript);
這將在ASP.NET頁面產(chǎn)生如下結(jié)構(gòu):
<script src=”myJavaScriptCode.js” type=”text/javascript”></script>
1.使用Page.ClientScript.RegisterClientScriptBlock
c#代碼
復(fù)制代碼 代碼如下:
<%@ 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>
運行結(jié)果如下:
復(fù)制代碼 代碼如下:
<html xmlns=”http://www.w3.org/1999/xhtml” >
<head><title>
Adding JavaScript
</title></head>
<body>
<form method=”post” action=”JavaScriptPage.aspx” id=”form1”>
<div>
<input type=”hidden” name=”__VIEWSTATE”
value=”/wEPDwUKMTY3NzE5MjIyMGRkiyYSRMg+bcXi9DiawYlbxndiTDo=” />
</div>
<script type=”text/javascript”>
<!--
function AlertHello() { alert(‘Hello ASP.NET'); }// -->
</script>
<div>
<input type=”submit” name=”Button1” value=”Button” onclick=”AlertHello();”
id=”Button1” />
</div>
</form>
</body>
</html>
2.使用Page.ClientScript.RegisterStartupScript
RegisterStartupScript 方法與RegisterClientScriptBlock方法最大的不同是:RegisterStartupScript 把script放置在 ASP.NET page的底部,而RegisterClientScriptBlock把script放置在ASP.NET page的頂部。
如果你的頁面中有如下代碼:
復(fù)制代碼 代碼如下:
<asp:TextBox ID=”TextBox1” Runat=”server”>Hello ASP.NET</asp:TextBox>
c#
復(fù)制代碼 代碼如下:
protected void Page_Load(object sender, EventArgs e)
{
string myScript = @”alert(document.forms[0][‘TextBox1'].value);”;
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), “MyScript”, myScript, true);
}
此頁面運行時會報錯,原因是JavaScript function先于text box被安放于瀏覽器。因此JavaScript function找不到TextBox1。
c#
復(fù)制代碼 代碼如下:
protected void Page_Load(object sender, EventArgs e)
{
string myScript = @”alert(document.forms[0][‘TextBox1'].value);”;
Page.ClientScript.RegisterStartupScript(this.GetType(), “MyScript”, myScript, true);
}
這段代碼把JavaScript function放置于ASP.NET page底部,因此JavaScript運行時它能找到TextBox1。
3.使用Page.ClientScript.RegisterClientScriptInclude
許多開發(fā)者把JavaScript放置在.js文件中,使用RegisterClientScriptInclude方法可以注冊.js文件中的JavaScript。
c#
復(fù)制代碼 代碼如下:
string myScript = “myJavaScriptCode.js”
Page.ClientScript.RegisterClientScriptInclude(“myKey”, myScript);
這將在ASP.NET頁面產(chǎn)生如下結(jié)構(gòu):
復(fù)制代碼 代碼如下:
<script src=”myJavaScriptCode.js” type=”text/javascript”></script>
您可能感興趣的文章:
- IIS6 中"ASP 0201 錯誤 無效的默認(rèn)腳本語言" 的解決方法
- 使用ASP控制指定站點解析腳本語言函數(shù)
- 用InstallShield打包ASP程序的腳本
- asp分頁生成html的程序腳本代碼
- 隱藏修改文件時間和文件屬性的ASP腳本
- ASP.NET調(diào)用javascript腳本的常見方法小結(jié)
- 從一個網(wǎng)站扒下的asp生成靜態(tài)頁面的代碼 腳本之家特供版
- iis、apache與nginx禁止目錄執(zhí)行asp、php腳本的實現(xiàn)方法
- ASP上傳漏洞之利用CHR(0)繞過擴(kuò)展名檢測腳本
- ASP中Server.Execute和Execute實現(xiàn)動態(tài)包含(include)腳本的區(qū)別
- ASP程序中常用的腳本語言
相關(guān)文章
.NET?Core使用Autofac容器的DI依賴注入,IOC控制反轉(zhuǎn)及AOP切面編程
本文詳細(xì)講解了.NET?Core使用Autofac容器的DI依賴注入,IOC控制反轉(zhuǎn)及AOP切面編程,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-02-02WPF實現(xiàn)轉(zhuǎn)圈進(jìn)度條效果
這篇文章主要為大家詳細(xì)介紹了WPF實現(xiàn)轉(zhuǎn)圈進(jìn)度條效果,如何設(shè)計自定義的繞圈進(jìn)度條,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05ASP.NET Core 2.0 WebApi全局配置及日志實例
下面小編就為大家分享一篇ASP.NET Core 2.0 WebApi全局配置及日志實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12ASP.net WebAPI跨域調(diào)用問題的解決方法
在做Web開發(fā)中,常常會遇到跨域的問題,到目前為止,已經(jīng)有非常多的跨域解決方案。下面這篇文章主要給大家介紹了關(guān)于ASP.net WebAPI跨域調(diào)用問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2018-03-03