0

我在页面的 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";

}

任何帮助?

4

2 回答 2

0

这取决于您的 IE 版本。直到 IE 8 没有生成DOM Mutation 事件,但是这里提到了另一种方法。尽管 IE 9 支持本 IE 博客中提到的一些基本 dom 突变事件。此外,请参阅此MSDN 条目以了解 IE9 中支持的接口。

一种非常粗略的方法是使用计时器事件来监视 DOM 内容的任何变化。但是您必须处理线程问题并且必须保留每个窗口的文本信息(通过窗口我指的是选项卡以及 IFrame 内容)。

另一种方法是使用异步可插入协议来监视任何 Ajax 请求,然后相应地通知相应的选项卡/窗口。这比以前的粗略方法更难。

于 2012-08-01T12:36:26.797 回答
0

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

我只是将整个页面内容读入问题中提到的“MSHTML”对象

 HTMLDocument document = (HTMLDocument)webBrowser.Document;

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

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

于 2012-09-25T12:13:58.937 回答