我在页面的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";
}
任何帮助?
答案 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”属性。