我正在尝试找到一种方法来检测来自 BHO 的页面上的更改。对于插件的 Firefox 版本,我使用的是 DomNodeInserted
,但这在 IE 中不可用。我也看过使用 onpropertychange
,但这只允许您监视单个元素(不是子元素)。
我现在想知道是否可以监控何时调用 AJAX 请求。如果是这样,我可以在 AJAX 请求完成后对页面进行更改。唯一的问题是,我找不到办法。
这是我目前的尝试,基于 jeffamaphone 的建议,它不起作用,但也许它会唤起某人的内存。
public class ChangeMonitor : IHTMLChangeSink {
public void Notify()
{
Trace.WriteLine("notified");
}
}
void registerMonitor()
{
HTMLDocument document = _webBrowser2.Document;
ChangeMonitor monitor = new ChangeMonitor();
IHTMLChangeSink changeSink = monitor;
IHTMLChangeLog changeLog = null;
((IMarkupContainer2)document).CreateChangeLog(changeSink, out changeLog, 1, 1);
}
最佳答案
对于 IE,onreadystatechange将等效于 DomNodeInserted。 DHTML 行为必须通过 htc 附加到元素,但 htc 文件不必存在:
document.documentElement.addBehavior("foo.htc");
document.documentElement.attachEvent("onreadystatechange", Notify);
关于javascript - 监控来自 IE BHO 的 ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4671412/