切换到在windows.onload上为对象分配函数而不是显式。遇到困难

时间:2013-06-18 11:48:52

标签: javascript function dom

[使用C#在Visual Studio上使用Visual Studio ASP.Net]

我一直试图改变在我的对象上显式分配事件,转向Unobtrusive JavaScript。但是,我似乎无法找到有关如何开始的适当信息。

我的功能位于头部,运作良好。我也试图将window.onload添加到头部。

    window.onload = myOnloadFunc()
{
document.getElementById('<%= NewQuestionTopbtn %>').OnClientClick="return NewQuestion()";
}

当我调试时,我立即得到错误,“Microsoft JScript运行时错误:对象预期” 然后我的动态代码显示:

  window.onload = myOnloadFunc()
{
document.getElementById('System.Web.UI.WebControls.Button').OnClientClick="return NewQuestion()";
}

让我相信在加载DOM之前,windows.onload函数似乎正在运行。但是,我开始相信window.onload函数在页面加载后运行。

使用时我的按钮工作正常:

<asp:Button ID="NewQuestionTopbtn" runat="server" Font-Bold="True" Font-Size="Medium" Text="New Question"  
OnClientClick="return NewQuestion()"/>

非常感谢任何建议!

1 个答案:

答案 0 :(得分:0)

您缺少function关键字。您还需要使用ClientID,它是浏览器客户端的HTML元素上使用的ID。

  window.onload = function()
{
   document.getElementById('<%= NewQuestionTopbtn.ClientID %>').addEventListener("click",NewQuestion);
}