C# 仅在回发页面上插入javascript
我相信这是相当简单的,但我有困难让它工作。我想在我的页面中添加一个javascript函数,但只有在页面返回后才添加 因此,我有一个按钮,可以调用一些服务器端代码,当它完成并重新加载页面时,我希望调用javascript函数 考虑到这一点,我想我可以添加一个隐藏变量,并在单击按钮时进行设置,但我想我更愿意在页面加载时将javascript插入页面 这是可能的,甚至是一个好方法吗 谢谢, 尼尔 编辑:好的,这是我在C代码中的OnClick方法C# 仅在回发页面上插入javascript,c#,javascript,asp.net,C#,Javascript,Asp.net,我相信这是相当简单的,但我有困难让它工作。我想在我的页面中添加一个javascript函数,但只有在页面返回后才添加 因此,我有一个按钮,可以调用一些服务器端代码,当它完成并重新加载页面时,我希望调用javascript函数 考虑到这一点,我想我可以添加一个隐藏变量,并在单击按钮时进行设置,但我想我更愿意在页面加载时将javascript插入页面 这是可能的,甚至是一个好方法吗 谢谢, 尼尔 编辑:好的,这是我在C代码中的OnClick方法 protected void Save(object
protected void Save(object sender, EventArgs e)
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "<script type=\"text/javascript\">alert('hello world');</script>");
EnforcementMatch(false);
EnforcementMatch(true);
ApplicationNotMatch();
ApplicationMatch();
Response.Redirect(Request.Url.ToString());
}
另一个编辑:刚刚意识到底部的response.redirect重新加载了我的页面,取消了我输入的代码,呸 您可以使用ClientScriptManager.RegisterClientScriptBlock
如果将其放置在按钮单击事件上,则不必担心它是否为回发。将其放置在单独的脚本块中,仅在回发时渲染
<script type="text/javascript" runat="server" visible="<%#this.IsPostBack %>">
TheCode();
</script>
你知道IsPostBack函数,对吗
此脚本将与updatepanel的每次回发一起触发
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function () {
alert('hello world');
});
</script>
哪些浏览器支持脚本标记上的visible属性?W3C文档中似乎没有提到。不,浏览器永远不会看到它。如果将runat=server放入任何html标记中,asp.net会将其从普通文本转换为实际的Web.UI.HtmlControls.HtmlGenericControl。“visible”属性指示是否必须在页中呈现控件。因此,如果visible=false,这个标记将不会出现在浏览器接收到的页面中。当我添加runat=server属性时,我无法在标记之间编写javascript代码。我得到一个complie错误,说方法必须有一个返回类型alert123;事实上,我忘记了,脚本标记是runat=server规则的一个例外,因为您可以使用它们在标记中添加.NET代码,但请永远不要这样做。忘了我说过什么吧:是的,这是我尝试的第一件事,但是javascript没有出现在页面上。我还尝试将它放在Init、PreRender等事件中。我还尝试在服务器端单击事件中使用它,javascript不会出现在页面上。这不是在页面呈现后调用的吗?@Neil-应该会出现,您必须小心使用该方法。仔细检查您的Javascript,查看是否有MSDN示例中的脚本标记,如果仍然存在问题,请更新您的问题并向我们展示您正在使用的代码。
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function () {
alert('hello world');
});
</script>