代码之家  ›  专栏  ›  技术社区  ›  Maxim Gershkovich

ASP.Net中页面/标记的自定义处理

  •  0
  • Maxim Gershkovich  · 技术社区  · 15 年前

    基本上,我希望实现的是通过添加一些代码为Javascript文件创建“includes”的方法,例如。

    //Include Src="MyJavascriptFileLocation.JS"
    

    然后让ASP.Net处理程序为我的javascript文件提供服务,同时还动态地将引用的javascript文件附加到写入include的位置。

    有谁能给我指点一下实现这个目标的方向吗?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Justin    15 年前

    您可以通过在HTML注释中包含Javascript文件的名称,然后重载System.Web.UI.Page对象的Render方法来搜索这些注释,并用Javascript文件中的文本替换它们。

    在标记中:

    <!-- Include Src="MyJavascriptFileLocation.JS" -->
    

    在您的C代码中:

            protected override void Render(System.Web.UI.HtmlTextWriter writer)
    
            {
    
                // First, grab the HTML that would have been sent
    
                System.IO.StringWriter stringWriter = new System.IO.StringWriter();
    
                HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
    
                base.Render(htmlWriter);
    
                string html = stringWriter.ToString();
    
    
    
                // Look for comment
                int start = html.IndexOf("<!-- Include");
    
    
    
                // If found...
    
                if (start >= 0)
    
                {
    
                                 // Code here to replace comment with JavaScript file
                }
    
                // Output our refactored HTML
    
                writer.Write(html);
           }
    

    我不确定这是不是最好的办法。动态地添加JavaScript会严重影响缓存等。不过,您可以尽量减少客户机需要发出的请求数。

        2
  •  0
  •   Justin    15 年前

    我刚刚意识到,您实际上可能在问如何将一个JavaScript文件包含到另一个JavaScript文件中。在本例中,您的问题实际上不是特定于.NET的,因为JavaScript是在客户端(在浏览器中)上解析和执行的。

    如果这是你想要的,这里有一个关于它的链接:

    http://www.cryer.co.uk/resources/javascript/script17_include_js_from_js.htm