如何在页面中添加脚本动态

本文关键字:head 动态 脚本 添加 | 更新日期: 2023-09-27 18:04:18

我使用asp.net 4和c#。

我有一个Web用户控件在Web From页面。当我包括Web用户控件时,我还想在最终生成的页面的标签中以编程方式包括一些脚本。

你知道怎么做吗?也许ScriptManager可以在这方面提供帮助?

请给我提供一个代码示例,我在开发方面很新,感谢您的时间!

如何在页面中添加脚本<head></head>动态

Peter的回答将添加到页面中,但不包含head元素。看看这篇文章:

http://weblogs.asp.net/johnkatsiotis/archive/2008/08/08/add-scripts-to-head-dynamically.aspx

它提供了一个使用扩展方法向head元素添加脚本的好方法。

我知道这是一个老问题,但是有一个更简单的方法。

试试这个:

Page.Header.Controls.Add(
    new LiteralControl(
        "<script>alert('Literal Added to <Head>.');</script>"
    )
);

如果您想在<head>的特定索引处添加脚本,您可以使用

AddAt(index, new LiteralControl(...)),其中索引0等于<head>的顶部

此外,joelmdev在评论中提到,您需要在头部标签中添加runat="server",例如<head id="head1" runat="server">

看一下ClientScriptManager的RegisterClientScriptBlock

从MSDN:

...
ClientScriptManager cs = Page.ClientScript;
// Check to see if the client script is already registered.
if (!cs.IsClientScriptBlockRegistered(csType, csName))
{
  StringBuilder csText = new StringBuilder();
  csText.Append("<script type='"text/javascript'"> function DoClick() {");
  csText.Append("Form1.Message.value='Text from client script.'} </");
  csText.Append("script>");
  cs.RegisterClientScriptBlock(csType, csName, csText.ToString());
}
...