打开两个标签显示加载activex控件

时间:2015-10-28 06:54:32

标签: tabs internet-explorer-8 crash controls activex

我开发了IE网页中使用的activex控件。如果我只打开一个需要加载我的页面 在IE 8中的activex控件,它工作正常。但是当我打开两个或更多需要在IE8中的标签中加载我的控件的页面时, 当我打开新标签时,IE8会崩溃。

我注意到,当我打开两个标签时,这两个标签在同一个过程中运行。我的activex中有很多全局变量 控制,当两个控件在同一个进程中运行时,全局控制冲突导致IE8崩溃。 如果我将TabProcGrowth注册表项设置为大于1的值,请使每个IE8选项卡在一个独立的进程中工作, 一切顺利。但这不是我想要的,有没有其他方法可以解决这类问题?

由于我开发的ActiveX控件使用其他库,我不可能杀死所有全局变量。 理想的解决方案是,在windows系统或IE8中有一个设置项。通过这种设置,我可以使ie8打开这些网页 在一个独立的过程中使用我的控件,但对于其他网页,它正常工作。 但我不知道在哪里做这种设置。

至于IE11,当我打开两个标签时,两个插件也可以在同一个过程中工作,但IE11不会崩溃!

1 个答案:

答案 0 :(得分:0)

IE11将每个选项卡作为单独的进程运行。 IE8没有。这意味着全局变量将在IE8中的选项卡之间共享,但在IE11中,每个选项卡都有自己的进程和它自己的全局变量集。

这是IE11中添加的一项功能,专门用于帮助稳定性;即如果标签崩溃,它就不会取消整个浏览器。

IE8没有这个功能,而且由于MS不再支持它,它现在肯定不会被添加。

所以简而言之,我认为你几乎被卡住了;我不认为除了让用户升级到IE11或重写你的控件以摆脱全局变量之外,还有任何解决方案。