如何修改基于AJAX的站点内容OnDocumentComplete事件

时间:2012-07-30 12:59:11

标签: html ajax bho

我在页面的DocumentComplete事件下有一个IE工具栏应用程序,我正在使用适用于某些网站的BHO(浏览器帮助对象)概念禁用HTML链接,但是当我浏览一些AJAX / JQUERY时基于网站,数据将动态弹出,而更多的源代码对动态数据也是不可能的,这个链接禁用功能不起作用......

当我们加载到浏览器中时如何禁用或修改动态数据的内容?

HTMLDocument document = (HTMLDocument)webBrowser.Document;
IHTMLElementCollection hh = ((IHTMLElementCollection)document.getElementsByTagName("a"));

foreach (IHTMLElement ht in hh)
{

 ((HTMLAnchorElement)ht).removeAttribute("href", 1);
 ((HTMLAnchorElement)ht).style.color = "#b9b0b0";

}

任何帮助?

2 个答案:

答案 0 :(得分:0)

这取决于您的IE版本。直到IE 8没有生成DOM Mutation event但是有另一种方法mentioned here。虽然IE 9支持this IE blog中提到的一些基本的dom变异事件。另请参阅此MSDN entry以获取IE9中支持的接口。

非常 粗略 方法是使用计时器事件来监控DOM内容中的任何更改。但是你必须处理线程问题并且必须保持每个窗口的文本信息(通过窗口我的意思是标签和IFrame内容)。

另一种方法是使用Asynchronous Pluggable Protocols监视任何Ajax请求,然后相应地通知相应的选项卡/窗口。这比之前的 粗略 方法更难。

答案 1 :(得分:0)

我得到了上述问题的答案。以下是我为此问题所遵循的解决步骤。

我只是将整个页面内容读入问题

中提到的“MSHTML”对象
 HTMLDocument document = (HTMLDocument)webBrowser.Document;

我再次将其加载到Web浏览器控件中。

从那里我可以轻松阅读数据,我只是删除了“href”属性。