使用vbscript在单独的进程中启动Internet Explorer 8

由于最近在IE8中添加了“功能”,新窗口会自动与单个会话相关联,因此我们的一些代码行为不正常。

这是因为一个单独的应用程序在激活时会启动一个新的IE窗口,并且一旦用户完成,关闭窗口。 这在IE7中运行良好,因为窗口中的会话信息保持独立。 然而,在IE8中,由于会话是在IE窗口之间共享的,我们发现“弹出”应用会破坏第一个应用的会话。

我已阅读有关nomerge开关,所以这是一种解决方法,但我想知道是否有办法将解决方案工作到vbscript的“CreateObject”中; 即:

Dim ieWin As Object
Set ieWin = CreateObject("InternetExplorer.Application")

调用CreateObject函数时有没有办法发送参数?


不,没有办法使用COM创建一个指定此行为的IE实例(或任何其他实例,例如InPrivate,No Add-ons等)。 您可以做的唯一事情就是创建一个自动化实例,该实例使用为此目的提供的CLSID而默认为MediumIL。 http://blogs.msdn.com/b/ieinternals/archive/2011/08/03/internet-explorer-automation-protected-mode-lcie-default-integrity-level-medium.aspx


如果您可以控制使用IE窗口加载的Web应用程序,则可以将其会话设置为“无cookie”(http://msdn.microsoft.com/zh-cn/library/aa479314.aspx),这样可以避免出现问题你有多个实例。


我们最终选择的解决方案,尽管它比其他任何工作都更容易 - 为弹出窗口分配了一个新的url。

以前,它的工作如下:

呼叫中心代理将每天使用我们的内部应用程序执行其他职责,例如“http:// internalsite / somepage.faces”。 当他们接到电话时,第三方应用程序会启动“http:// internalsite /customerdetails.faces”。 这导致了上述问题。

我们的解决方案是:

我们为其分配了“http:// internalsite /customerdetails.faces”它自己的url,例如“http:// customerdetailminisite /customer.faces”。

通过这种方式,呼叫中心代理可以将其主窗口保留为其他内容,并且在来电时仍能够处理呼叫。

链接地址: http://www.djcxy.com/p/49909.html

上一篇: Start Internet Explorer 8 in a separate process using vbscript

下一篇: ASP>net MVC reusable partials