为什么window.onload会忽略回发?

时间:2014-11-06 12:53:59

标签: javascript asp.net .net

考虑以下js代码(在加载时单击asp.net Button):

function doSomething()
{
    document.getElementById("<%= theButton.ClientID %>").click();
}
window.onload = doSomething;

加载页面时 - 执行按钮的代码隐藏,并再次加载页面(带有新信息)。这个应该引入了一个无限循环的bug,但事实并非如此。它只被调用一次,并在回发中被忽略。

为什么?

1 个答案:

答案 0 :(得分:0)

假设您希望仅在第一次加载页面时调用doSomething方法:

您应该使用后面的代码中的doSomething将对Page.RegisterStartupScript的调用添加到页面中,但将其包装在if语句中,以检查它是否为回发。这样,您的方法只会在第一次加载页面时调用:

 if(!Page.IsPostBack)
 {
    Page.ClientScript.RegisterStartupScript(GetType(), "buttonClickScript" "window.onload = doSomething;", true);
 }