Jar*_*red 15 javascript asp.net ajax
我有一个注入javascript pageLoad函数的ASP.Net控件.我也pageLoad直接在页面上有一个功能.我似乎无法让他们两个都开火.您是否仅限于javascript中具有相同名称的单个函数?
Gen*_*eev 34
是的...与大多数语言一样,JavaScript要求符号在其范围内是唯一的.在JavaScript中,如果为给定范围内的函数创建多个定义,则要定义的最后一个定义为"wins" - 就好像之前的定义从未存在过一样.
为了使冗余pageLoad功能正常工作,您需要做的是使用该Sys.Application.add_load()方法.使用它,您可以根据需要将任意数量的处理程序附加到页面加载事件.更重要的是,您可以使用匿名函数添加add_load方法.这样做可以保证不会有重复名称的处理程序的危险.例:
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);
Run Code Online (Sandbox Code Playgroud)
您可以轻松地Sys.Application.add_load在客户端使用,甚至可以多次添加相同的处理程序.这将导致多次触发相同的函数:)