Outlook插件和webbrowser出现问题

Outlook插件和webbrowser出现问题,outlook,plugins,browser,Outlook,Plugins,Browser,我已经创建了几个Office插件。该插件显示安装在客户端计算机上的一组html文件。该插件使用一个COM可访问程序集,该程序集显示一个带有WebBrowser的WinForm。该插件使WebBrowser导航到客户端计算机上的文件。该程序集也用于其他程序中,以显示相同的信息 使用“普通”浏览器显示本地html文件时(例如,双击Windows资源管理器中的文件),浏览器会弹出有关运行活动内容的安全警告。这是因为我们有一些javascript在里面。通过在Internet Explorer设置中设置

我已经创建了几个Office插件。该插件显示安装在客户端计算机上的一组html文件。该插件使用一个COM可访问程序集,该程序集显示一个带有WebBrowser的WinForm。该插件使WebBrowser导航到客户端计算机上的文件。该程序集也用于其他程序中,以显示相同的信息

使用“普通”浏览器显示本地html文件时(例如,双击Windows资源管理器中的文件),浏览器会弹出有关运行活动内容的安全警告。这是因为我们有一些javascript在里面。通过在Internet Explorer设置中设置“允许活动内容在我的计算机上的文件中运行”,可以消除此警告。这就解决了使用“普通”浏览器的问题

有趣的是,当使用Word/Excel/PowerPoint插件获取同一文件时,不会显示“活动内容”警告。它使用相同的WinForm和相同的内容调用相同的程序集。尽管设置“允许活动内容从我的计算机上运行”为false,但显示内容时不会发出警告,并且会执行javascript

现在,问题和真正的问题是,Outlook做了相反的事情。无论我使用什么“允许活动内容从我的计算机运行”,浏览器都会显示有关html文件中活动内容的警告。当我确认消息并允许脚本继续时,javascript运行良好。因此,即使我将“允许活动内容从我的计算机运行”设置为true,也会发出警告

我已经完成了Outlook中的所有(某种)相关设置,但没有任何帮助

我假设Outlook对webbrowser使用某种私有上下文(可能是因为它在内部使用webbrowser对象)

真正的问题是:如何让Outlook插件尊重IE设置


(我明白这是一个很长的故事,可能还不够清楚。如果我需要详细说明,请告诉我)。

如果不降低安全设置,我无法摆脱安全警告。这不是一个选项:我们谈论的是一个将安装在数百万台计算机上的项目

我决定走另一条路。让我们看看能否让浏览器信任html页面。那么,如何摆脱“活动内容”警告呢

首先,我调查了到底是什么触发了警告。这很简单:html文件中的任何标记都可以。我需要脚本,所以删除它不是一个选项。但是,当从网站托管时,脚本运行良好,不会受到警告。因此,我调查了是否可以在Internet环境中运行我的文件

我发现有一种方法,至少对于IE来说是这样(在我的情况下这就足够了)。如果您将网页从IE保存为完整的HTML文件,浏览器会向HTML添加注释以表示其来源。类似于:。如果以后打开存储的html文件,该文件将显示在Internet上下文中

因此,我尝试添加到html文件中。瞧,这个文件是在互联网环境下打开的。有关活动内容的安全警告消失,脚本执行正常

但是,这引发了另一个问题。我们在脚本中有几个window.open语句,使用这些语句会导致跨域浏览问题,而在最近的IE版本中,这些问题被阻止。即使您在window.open调用中使用了相对路径,如果失败,您将得到一个空白窗口

在我们的例子中,我们可以(可能)决定取消window.open调用。但是,如果读者在这个场景中找到了使用window.open的解决方案,如果您能告诉我,我将非常高兴


因此,现在:案例已关闭…

如果不降低安全设置,我无法摆脱安全警告。这不是一个选项:我们谈论的是一个将安装在数百万台计算机上的项目

我决定走另一条路。让我们看看能否让浏览器信任html页面。那么,如何摆脱“活动内容”警告呢

首先,我调查了到底是什么触发了警告。这很简单:html文件中的任何标记都可以。我需要脚本,所以删除它不是一个选项。但是,当从网站托管时,脚本运行良好,不会受到警告。因此,我调查了是否可以在Internet环境中运行我的文件

我发现有一种方法,至少对于IE来说是这样(在我的情况下这就足够了)。如果您将网页从IE保存为完整的HTML文件,浏览器会向HTML添加注释以表示其来源。类似于:。如果以后打开存储的html文件,该文件将显示在Internet上下文中

因此,我尝试添加到html文件中。瞧,这个文件是在互联网环境下打开的。有关活动内容的安全警告消失,脚本执行正常

但是,这引发了另一个问题。我们在脚本中有几个window.open语句,使用这些语句会导致跨域浏览问题,而在最近的IE版本中,这些问题被阻止。即使您在window.open调用中使用了相对路径,如果失败,您将得到一个空白窗口

在我们的例子中,我们可以(可能)决定取消window.open调用。但是,如果读者在这个场景中找到了使用window.open的解决方案,如果您能告诉我,我将非常高兴


所以,现在:案件已结案…

在这种情况下,Internet explorer使用web标记


Web示例的标记。
你好,世界

更多信息从这里
在这种情况下,Internet explorer使用web标记


Web示例的标记。
你好,世界

更多信息从这里

@盛江蒋晟 - 我不同意。“这是他能找到的对他的问题的最好答案。”盛江说蒋晟 - 我不同意。这是他能找到的对他的问题的最好答案。
<!doctype html>
<!-- saved from url=(0023)http://www.contoso.com/ -->
<html>
  <head>
    <title>A Mark of the Web Example.</title>
  </head>
  <body>
     <p>Hello, World</p>
  </body>
</html>