【问题标题】:Add JavaScript reference from code behind (C#)从后面的代码中添加 JavaScript 引用 (C#)
【发布时间】:2010-09-13 14:50:31
【问题描述】:

是否可以从 aspx.cs 后面的代码中动态添加 javascript 引用?

像这样:

private void AddScriptReference(string path)
{
   //Add reference to <head></head>
}

应该导致脚本引用被添加到页面的头部,如下所示:

<html>
   <head>
      <script type="text/javascript" src="path-to-script.js"></script>
   </head>
</html>

这可能吗?

【问题讨论】:

    标签: c# javascript asp.net


    【解决方案1】:

    有点晚了,但我想我会发布一个答案,以防其他人需要它。此解决方案不需要 ScriptManager。

    基本上,这只是一个创建控件,然后添加到头部的情况。这是代码。

    LiteralControl javascriptRef = new LiteralControl("<script type='text/javascript' src='path_to_script.js'></script>");
    
    Page.Header.Controls.Add(javascriptRef);
    

    【讨论】:

    • 我很欣赏非 ScriptManager 解决方案。它允许以编程方式将脚本链接加载到标题中(例如,我在母版页中使用它来管理网站页面上的 .js 权重)。
    【解决方案2】:

    对于那些想知道语法的人,这里是:

    母版页:

    <asp:ScriptManager ID="ScriptManager" EnablePageMethods="true" runat="server"></asp:ScriptManager>
    

    后面的代码:

    ScriptReference sr = new ScriptReference("path-to-js.js");
    ScriptManager sm = (ScriptManager)this.Master.FindControl("ScriptManager");
    sm.Scripts.Add(sr);
    

    或者:

    ScriptManager.RegisterClientScriptInclude(this.Page, GetType(), "UniqueID", "path-to-js.js");
    

    但是这些解决方案都没有真正将脚本添加到页面的头部..

    【讨论】:

      【解决方案3】:

      您可以使用ASP.NET Ajax ScriptManager 这样做。

      将其添加到您的母版页,并在您的代码隐藏中使用 ScriptManager.RegisterClientScriptInclude

      【讨论】:

      • 谢谢,我应该知道这个:P
      猜你喜欢
      • 1970-01-01
      • 2012-01-04
      • 2013-11-10
      • 1970-01-01
      • 2013-12-07
      • 1970-01-01
      • 2011-11-26
      • 2014-01-18
      • 1970-01-01
      相关资源
      最近更新 更多