主要是我的网站正在使用ajax,但是如果我需要在页面加载时发送消息,我希望它与其他地方的样式相同,所以我在我的母版页上使用以下方法:
public void showWarning(String message)
{
Page.ClientScript.RegisterStartupScript(this.GetType(),"svrShowWarning","showWarning('" + message + "');",true);
}
这工作正常,但最近它已停止工作(我不知道确切的时间。)
服务器根本无法将脚本放在页面上 - 在Web浏览器中查看页面源代码,我可以看到该脚本不存在。
之前,我有一个带有runat=server
标签的表单,其中包含了我母版页上的所有内容,但我把它拿出来了。我想知道这可能是原因吗?
在所有内容加载后,有什么方法可以在我的页面上启动这样的简单javascript?
答案 0 :(得分:2)
由于ASP.NET Webforms需要具有runat=server
属性的表单才能正常工作,这可能是原因。
看一下documentation,它说在脚本之前添加了脚本 元件
所以你可能需要这种形式。
关于在加载所有内容后运行脚本,您可以在窗口对象的onload事件中触发它:
public void showWarning(String message)
{
string script = "window.onLoad(function(){showWarning('" + message + "');});";
Page.ClientScript.RegisterStartupScript(this.GetType(),"svrShowWarning",script",true);
}
如果您在页面上使用jQuery,则可以使用
string script = "$(document).ready(function(){showWarning('" + message + "');});";
代替
答案 1 :(得分:2)
使用Ajax,建议使用ScriptManager注册脚本:
ScriptManager.RegisterStartupScript(Page, GetType(),
"svrShowWarning","showWarning('" + message + "');",true);