首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.Net AJAX可以实现多个pageLoad函数吗?

ASP.Net AJAX可以实现多个pageLoad函数吗?
EN

Stack Overflow用户
提问于 2009-06-12 18:10:30
回答 2查看 8.4K关注 0票数 16

我有一个注入javascript pageLoad函数的ASP.Net控件。我还有一个直接在页面上的pageLoad函数。我似乎不能让他们两个都开火。在javascript中,您是否仅限于使用相同名称的单个函数?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-12 19:20:21

是的..。与大多数语言一样,JavaScript要求符号在其作用域内是唯一的。在JavaScript中,如果你在一个给定的作用域内为一个函数创建了多个定义,那么最后一个被定义的函数就会“胜出”--就好像之前的定义从未存在过一样。

为了使冗余的pageLoad函数正常工作,您需要做的是使用Sys.Application.add_load()方法。使用它,您可以将任意数量的处理程序附加到页面加载事件。此外,您还可以使用匿名函数来添加add_load方法。这样做可以保证处理程序不会有重复名称的危险。示例:

代码语言:javascript
复制
StringBuilder sb = new StringBuilder();
  sb.Append("Sys.Application.add_load(");
  sb.Append("function() { alert('page load'); });");

ClientScript.RegisterStartupScript(this.GetType(), "Page_Load", sb.ToString(), true);

您可以在客户端轻松地使用Sys.Application.add_load,甚至可以多次添加相同的处理程序。这将导致多次触发同一函数:)

票数 36
EN

Stack Overflow用户

发布于 2009-06-12 18:33:24

我不同意Shog9的观点。

我知道在单个文档中可以有多个$( document ).ready(f(n))调用,每个调用都在DOM完成加载时依次调用。我也不认为多次调用ClientScript.RegisterStartupScript()会导致任何问题。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/988166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档