偶然发现asp.net中使用script的小区别
2008-04-29 15:31
288 查看
最早用js实现变换图片模块时,遇到的问题,现在偶然间发现了原因。当时,出现的问题是找不到document上的元素。而原因就是“
我们已为您介绍了两种不同的可用来将 JavaScript 函数嵌入 ASP.NET 页面的方法,那么,二者之间有何不同呢?主要区别在于,RegisterStartupScript 方法是将 JavaScript 嵌入到 ASP.NET 页面的底部,恰好位于关闭元素 </form> 的前面。RegisterClientScriptBlock 方法是将 JavaScript 嵌入到页面中开启元素 <form> 的紧后面。那么,这有何不同呢?正如我们将要看到的,这有很大的不同。
google_ad_client = "pub-6924533005275861";
google_ad_slot = "0030867594";
google_ad_width = 300;
google_ad_height = 250;
更多请访问 http://www.123de6.cn 就此列举一例,以下是在页面加载到浏览器时,将焦点置于该页面上的一个文本框中的方法 - 使用利用了 RegisterStartupScript 方法的 Visual Basic:
Page.ClientScript.RegisterStartupScript(Me.GetType(), "Testing", _ "document.forms[0]['TextBox1'].focus();", True)
由于在浏览器运行到页面底部并执行此小段 JavaScript 时,就已生成了页面上的文本框,并已将其放到了页面中,因此,此方法运行正常。但是,如果不按照上述方法,而编写如下代码(使用 RegisterClientScriptBlock 方法):
Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "Testing", _ "document.forms[0]['TextBox1'].focus();", True)
文本框控件将不会获得焦点,且会在页面上生成一个 JavaScript 错误。
出错的原因在于,浏览器将先遇到 JavaScript,而后文本框才会出现在页面中。因此,JavaScript 将无法找到 TextBox1。”
如果您在asp.net中使用脚本,请记得注意这个差别。
我们已为您介绍了两种不同的可用来将 JavaScript 函数嵌入 ASP.NET 页面的方法,那么,二者之间有何不同呢?主要区别在于,RegisterStartupScript 方法是将 JavaScript 嵌入到 ASP.NET 页面的底部,恰好位于关闭元素 </form> 的前面。RegisterClientScriptBlock 方法是将 JavaScript 嵌入到页面中开启元素 <form> 的紧后面。那么,这有何不同呢?正如我们将要看到的,这有很大的不同。
google_ad_client = "pub-6924533005275861";
google_ad_slot = "0030867594";
google_ad_width = 300;
google_ad_height = 250;
更多请访问 http://www.123de6.cn 就此列举一例,以下是在页面加载到浏览器时,将焦点置于该页面上的一个文本框中的方法 - 使用利用了 RegisterStartupScript 方法的 Visual Basic:
Page.ClientScript.RegisterStartupScript(Me.GetType(), "Testing", _ "document.forms[0]['TextBox1'].focus();", True)
由于在浏览器运行到页面底部并执行此小段 JavaScript 时,就已生成了页面上的文本框,并已将其放到了页面中,因此,此方法运行正常。但是,如果不按照上述方法,而编写如下代码(使用 RegisterClientScriptBlock 方法):
Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "Testing", _ "document.forms[0]['TextBox1'].focus();", True)
文本框控件将不会获得焦点,且会在页面上生成一个 JavaScript 错误。
出错的原因在于,浏览器将先遇到 JavaScript,而后文本框才会出现在页面中。因此,JavaScript 将无法找到 TextBox1。”
如果您在asp.net中使用脚本,请记得注意这个差别。
相关文章推荐
- 偶然发现asp.net中使用scipt的小问题
- asp.net 需知:RegisterStartupScript、RegisterClientScriptBlock、Response.Write 使用区别
- ASP.NET中使用<script runat="server">
- ASP.NET AJAX 's UpdatePanel 中使用Page.ClientScript.RegisterStartupScript 失败
- [原]ASP.NET中使用JQUERY-EASYUI后,解决ClientScript.RegisterStartupScript 所注册脚本执行两次
- 在asp.net中使用组件,也包括import和asemble的区别
- VS2012使用验证控件出现[ASP.NET]WebForms UnobtrusiveValidationMode 需要 'jquery' 的 ScriptResourceMapping。請加入 ScriptResourceMapping 命名的 jquery (區分大小寫)。的解决办法。
- 让ASP.NET简便使用SCRIPT
- 使用ASP.NET Global.asax 文件(目前未用到,搜东西时发现的,感觉以后会用的)
- ASP.NET MVC 中 ActionResult 和 ViewResult 在使用上的区别
- ASP.NET AJAX 's UpdatePanel 中使用Page.ClientScript.RegisterStartupScript 失败
- .Net后台使用RegisterClientScriptBlock和RegisterStartupScript调用前台的JS 区别
- ASP.net 中 使用ClientScript.RegisterStartupScript() 注册脚本
- ASP.Net 心路笔记-第一天<%%>和<script runat="server">区别浅谈
- asp.net中cookie和session的区别和相关使用
- [备忘]ASP.NET MVC中RouteData.GetRequiredString("key")方法和RouteData.DataTokens["key"]方法使用上的区别
- Asp.net在WebApplication和WebSite中用户控件的使用区别
- 使用微软ASP.NET MVC Framework的一些感受 + 收集园子朋友发现的bug反馈 【补充】
- asp.net ajax后台使用JS脚本.需要使用ScriptManager..::.RegisterStartupScript 方法
- ASP .NET调用javascript中Response.Write和ClientScript.RegisterStartupScript的区别