2009-10-02 68 views
1

我有一个嵌入Internet Explorer作为WebBrowser控件的C++应用程序。如何强制JavaScript在嵌入式WebBrowser控件中启用?

我在该控件中显示的内容依赖于JavaScript被启用,但如果用户在其Internet Explorer安全设置中禁用了JavaScript,则它在我的嵌入式控件中也被禁用。

如何确保为我的嵌入式Web浏览器控件启用JavaScript?

(先发制人的评论回应:我是在内容的完全控制,因此启用JavaScript是不是存在安全隐患。)

+1

你的逻辑是有缺陷的。你不是用户。对于用户和您来说,安全风险可能并非一回事。 – reinierpost 2009-10-02 16:25:24

回答

1

我认为这样做的唯一方法是摆弄注册表,但是您确实需要确保您的应用程序有权这样做,因为它会影响Internet Explorer在您的应用程序之外运行的方式。

这个KB可能会有帮助,如果你要继续它。我不确定哪些区域控制会考虑您的内容,我想这取决于您如何将内容加入其中。

+0

对于可以工作的答案+1,但我真的不想修改系统范围的设置(即使是短暂的,如果这足够好的话)。我现在可以看到我的下一个SO问题:“如何为我自己的流程伪造一个注册表值?” :-) – RichieHindle 2009-10-02 16:58:32

2

用户总是在浏览器的控制权,或者至少他应该是。所以强制JavaScript使用是不可能的。

2

在您的应用程序中实现IInternetSecurityManager和IDocHostUIHandler作为客户端站点。您也可以拥有您自己的IDocHostUIHandler :: GetOptionKeyPath(...)的IE浏览器树:...

C++和C#中有很多示例可用。

+0

我不相信'GetOptionKeyPath'有帮助,因为控制JavaScript的选项位于注册表的“Windows”区域,而“GetOptionKeyPath”覆盖了“Internet Explorer”区域。但'IInternetSecurityManager'看起来非常有前途 - 我会尽快研究。谢谢! – RichieHindle 2009-10-15 22:39:49

相关问题