考虑以下js代码(在加载时单击asp.net Button
):
function doSomething()
{
document.getElementById("<%= theButton.ClientID %>").click();
}
window.onload = doSomething;
加载页面时 - 执行按钮的代码隐藏,并再次加载页面(带有新信息)。这个应该引入了一个无限循环的bug,但事实并非如此。它只被调用一次,并在回发中被忽略。
为什么?
答案 0 :(得分:0)
假设您希望仅在第一次加载页面时调用doSomething
方法:
您应该使用后面的代码中的doSomething
将对Page.RegisterStartupScript
的调用添加到页面中,但将其包装在if语句中,以检查它是否为回发。这样,您的方法只会在第一次加载页面时调用:
if(!Page.IsPostBack)
{
Page.ClientScript.RegisterStartupScript(GetType(), "buttonClickScript" "window.onload = doSomething;", true);
}