繁体   English   中英

RegisterStartupScript不再在asp.net中工作

[英]RegisterStartupScript no longer working in asp.net

大多数情况下,我的网站都使用ajax,但是如果我需要在页面加载时发送消息,则希望它与其他任何地方都具有相同的样式,因此我在主页上使用以下方法:

public void showWarning(String message)
{
    Page.ClientScript.RegisterStartupScript(this.GetType(),"svrShowWarning","showWarning('" + message + "');",true);
}

这个工作正常,但是最近它停止工作了(确切的时间我不知道。)

服务器根本无法将脚本放在页面上-在我的Web浏览器中查看页面源,可以看到该脚本不存在。

以前,我有一个带有runat=server标记的表单,该表单包围了母版页上的所有内容,但是我将其取出来。 我想知道这可能是原因吗?

在加载完所有内容后,如何在页面上触发类似这样的简单javascript的好方法?

由于ASP.NET Webforms需要具有runat=server属性的表单才能正常工作,所以这可能是原因。

看一下文档 ,它说脚本是在元素之前添加的

因此您可能需要该表格。

关于在加载所有内容后运行脚本,可以在window对象的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 + "');});";

代替

对于Ajax,建议使用ScriptManager注册脚本:

ScriptManager.RegisterStartupScript(Page, GetType(),
       "svrShowWarning","showWarning('" + message + "');",true);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM