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

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

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

编辑,甚至更多的细节:

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

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

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


当前回答

我已经使用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运行起来

这显然是解决了,但对于其他用户,我建议使用SpicIE框架。我在此基础上做了自己的扩展。它只支持Internet Explorer 7/8官方版本,但我在Internet Explorer 6-10(从Windows XP到Windows 8消费者预览版)上进行了测试,结果很好。 不幸的是,在最新的版本中有一些bug,所以我不得不修复它们,并发布了自己的版本: http://archive.msdn.microsoft.com/SpicIE/Thread/View.aspx?ThreadId=5251

这个问题是从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

如果你不打算重新发明轮子,你可以试试IE的Add In Express。我已经使用该产品的VSTO的东西,它很好。此外,他们有一个有用的论坛和快速的支持。