一个ASP.NET的JS管理方案2010-09-16QLeelulu场景:在自定义控件、用户控件、页面、后台代码都会有引用JS的可能,这就会出现混乱或者重复引用的可能。一个自定义控件,用于在ASPX页面中注册JS:public class Script : Control
{
#region 属性
private string m_Src;
/// <summary>
/// 脚本文件路径
/// </summary>
public string Src
{
get { return m_Src; }
set { m_Src = value; }
}
#endregion
/// <summary>
/// 在控件Init的时候将JS路径添加到HttpContext.Current.Items["IncludedJavaScript"]中。
/// </summary>
/// <param name="e"></param>
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
if (!string.IsNullOrEmpty(Src))
{
string src = ResolveUrl(Src);
List<string> includedJs = HttpContext.Current.Items["IncludedJavaScript"] as List<string>;
if (null == includedJs)
{
includedJs = new List<string>();
HttpContext.Current.Items["IncludedJavaScript"] = includedJs;
}
if (!includedJs.Contains(src))
{
includedJs.Add(src);
}
}
}
}