在座有人有开发IE扩展的经验吗?这将包括代码示例,或链接到好的示例,或关于流程的文档,或任何东西。

我真的很想这么做,但我碰到了一堵巨大的墙,里面有糟糕的文档、糟糕的代码/示例代码/缺乏它们。你能提供的任何帮助/资源都将不胜感激。

具体来说,我想从如何从IE扩展中访问/操作DOM开始。

编辑,甚至更多的细节:

理想情况下,我想种植一个工具栏按钮,当点击时,弹出一个菜单,其中包含到外部网站的链接。我还想根据某些条件访问DOM并在页面上植入JavaScript。

在IE扩展中保存信息的最好方法是什么?在Firefox/Chrome/大多数现代浏览器中,你使用window。localStorage,但显然在IE8/IE7中,这不是一个选项。也许是SQLite DB之类的?可以假设。net 4.0将安装在用户的计算机上吗?

我不想使用Spice IE,因为我想构建一个与IE9兼容的IE。我也为这个问题添加了c++标签,因为如果用c++构建一个更好的话,我可以这样做。


当前回答

我同意Robert Harvey的观点,c# 4.0改进了COM互操作。这是一段非常需要重写的旧c#代码。

http://www.codeproject.com/KB/cs/Attach_BHO_with_C_.aspx

这是通过避免ATL和使用Spartan COM来简化事情的尝试:

c++和COM让bho运行起来

其他回答

另一个很酷的方法是查看:

http://www.crossrider.org

它是一个基于JS和jquery的框架,可以让你用一个简单的JS代码为IE, FF和Chrome开发浏览器扩展。 基本上,框架完成了所有烦人的工作,剩下的就是编写应用程序代码。

这个问题是从2013年开始,现在是2020年,但这可能对未来的游客有帮助。

我试着执行米格尔·安吉洛的回答,一开始并没有成功。

还有一些设置需要定义。

在ie浏览器上(我使用IE-11)进入工具-> internet选项->高级:

也可以看看这个SO问题和这个来自github的例子

我已经使用IE的web浏览器控件很多年了,在这期间,有一个名字一次又一次地出现在有用的帖子中:Igor Tandetnik

如果我正在开发一个扩展,我会瞄准一个BHO,并开始谷歌:

BHO Igor Tandetnik

OR

浏览器帮助对象Igor Tandetnik

他的帖子通常非常详细,他知道自己在说什么。

你会发现自己在COM和ATL编程上忙得不可开交。 要查看示例演练,请查看: http://msdn.microsoft.com/en-us/library/ms976373.aspx

我同意Robert Harvey的观点,c# 4.0改进了COM互操作。这是一段非常需要重写的旧c#代码。

http://www.codeproject.com/KB/cs/Attach_BHO_with_C_.aspx

这是通过避免ATL和使用Spartan COM来简化事情的尝试:

c++和COM让bho运行起来

开发c# bho是一件非常痛苦的事情。它涉及大量烦人的COM代码和p/invoke调用。

我这里有一个基本完成的c# BHO,你可以自由地使用源代码来做任何你想做的事情。我之所以说“大部分”,是因为我从未弄清楚如何在IE保护模式下保存appdata。