2009-10-02 61 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

相關問題