我继承了一个使用在通用处理程序(ashx)中创建的javascript的预编译网站。我需要修改js,但我没有源代码,只有预编译的库。目前,我们只是在ashx上执行http请求,修改结果,然后直接在网站上输出:
<script runat="server">
protected string getJs()
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(Request.Url, "/js.ashx"));
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream());
return = sr.ReadToEnd().Replace("old stuff", "new stuff");
}
</script>
<script type="text/javascript">
<%= getJs() %>
</script>
这似乎是一种非常圆润的方式。无论如何修改通用处理程序的输出而不请求页面本身?
答案 0 :(得分:2)
如果您可以访问实际的dll
,则可以尝试拆分预编译的部分。
请参阅converting-il-to-c-code和类似的SO问题。
使用.NET Reflector,您可能拥有js.ashx
背后代码的可行(C#)版本。
这个源可以(希望)稍微修改为可以直接调用,或者更好,以生成所需的Javascript。