有人可以告诉我如何在ASP.NET提供的JS页面中实现自己的自定义标记吗?
基本上我想要实现的是通过添加一些代码来为我的Javascript文件创建“包含”的方法。
//Include Src="MyJavascriptFileLocation.JS"
然后让ASP.Net处理程序提供我的javascript文件,同时动态地将引用的javascript文件附加到写入包含的位置。
有人可以指导我完成这个目标吗?
答案 0 :(得分:1)
您可以通过在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文件,则可以使用while循环并重复搜索并替换,直到找到所有这些文件。
我不确定这是最好的事情。动态添加JavaScript会真的搞乱缓存等。您尽量减少客户端需要进行的请求数量。
如果您要求的内容有意义并且只是回答问题,我会留给您。你比我更了解你想要实现的目标。
答案 1 :(得分:0)
我刚才意识到你可能真的在问如何将JavaScript文件包含到另一个JavaScript文件中。在这种情况下,您的问题并不是特定于.NET的,因为JavaScript在客户端(在浏览器中)被解析和执行。
如果这是你想要的,这里有一个链接来讨论它:
http://www.cryer.co.uk/resources/javascript/script17_include_js_from_js.htm