我需要重写网页上由一个DLL服务的域名,我无法更改。
我想,如果在响应之前发生on flush之类的事件,那么在页面显示之前,flush就会发生在页面上。有没有在ASP中这样做的方法?
谢谢你的帮助。
P.S.:类似于脚本“onflush”的Apache扩展名:
http://www.apache-asp.org/events.html
根据尼克的建议,我创建了一个继承自stream类的类。
response.filter正在使用此类处理HTML内容…
通过重写write方法,我成功地重写了站点上的域名。
public override void Write(byte[] buffer, int offset, int count)
{
byte [ ] data = new byte [ count ];
Buffer.BlockCopy ( buffer, offset, data, 0, count );
string myHTML = ASCIIEncoding.ASCII.GetString(data);
string convertedHTML = myHTML.Replace("http://www.previousdomain.com", "http://www.currentdomain.com");
data = ASCIIEncoding.ASCII.GetBytes(convertedHTML);
_sink.Write ( data, 0, count );
}
谢谢尼克!