0

我有一個webbrowsercontrol應用程序。這個webbrowsercontrol會加載一個與IE9不兼容的頁面。 (不能改變它,因爲它由其他人生成)默認情況下,VB.NET 2010的webbrowser控件使用IE9 renderengine,並且可以以某種兼容模式運行。不幸的是即使在兼容模式下頁面也不起作用。有沒有辦法使用真正的IE7或IE8渲染引擎的網頁瀏覽器控制?感謝我可以將WebBrowser控件的渲染引擎更改爲舊版本嗎?

UPDATE

說明問題:我有一個內部的JAVA小程序的頁面。這個Java applet有一個帶有文本框的彈出窗口。這個文本框被迫留在前面直到關閉。這在IE7和IE8中工作正常。但在IE9中,如果我移動瀏覽器窗口或訪問任何其他應用程序,則此消息箱跳轉到後面。不能再點擊了。我的瀏覽器(運行任何仿真的IE9)不起作用。它就好像它仍然會在IE9上一樣,即使我模仿IE7或IE8。

+0

我見過我的一個朋友,調整他的註冊表以獲得網頁瀏覽器控件使用IE7。這不是一個答案,但認爲這將是一個有用的方向,讓你找出答案。 – Ron 2013-03-14 14:45:23

+1

看看這個答案的第2點,指向你在正確的方向:http://stackoverflow.com/a/9245591/2128831 – 2013-03-14 14:47:46

+0

謝謝你們..但兩個答案都指向了模擬。不幸的是這不起作用。更新主帖以解釋兼容性問題。 – sharkyenergy 2013-03-14 15:01:13

回答

2

有沒有辦法使用真正的IE7或IE8渲染引擎的瀏覽器控件?

是的,但它要求您將安裝在計算機上的Internet Explorer版本降級到版本7或8,這不會帶來友好的安裝體驗。

問題是WebBrowser控件總是使用安裝在計算機上的IE版本,因爲它只是將渲染委託給本機庫shdocvw.dll,這與本身使用的是同一個。在你的情況,這似乎是IE 9。但是,默認情況下,它也運行在IE 7兼容模式。您可以將其更改爲editing the registry,但不能更改渲染引擎的版本。

不幸的是,這意味着你運氣不好,因爲在單臺計算機上運行多個版本的IE並不是,並且從來沒有受到過支持的配置。它can beaccomplished爲測試目的,但它需要額外的軟件和版本不能很好地一起玩。肯定不足以支持獨立的IE瀏覽器,而另一個則驅動.NET WebBrowser控件。

解決代碼與IE 9正常工作是最好的選擇。 IE 9代表微軟向符合標準的瀏覽器發展緩慢,儘管它仍然存在一些怪癖,但值得支持。我知道你說網站代碼是由「其他人」維護的,但我建議向他們提交支持請求 - 他們的代碼有問題,需要修復。如果您(或他們)需要此幫助,他們可以在此處詢問我們的 code ninjas 網絡標準專家。

或者,您可以探索用替代控件替換WebBrowser控件。對於.NET Framework有幾個很好的方法,它包裝了其他流行瀏覽器使用的渲染引擎。例如:

  • WebKit .NET是WebKit引擎,由谷歌Chrome瀏覽器和蘋果Safari瀏覽器所使用的包裝。
  • GeckoFX是由Mozilla Firefox使用的Gecko渲染引擎的包裝。
  • MozNet是Gecko的替代包裝。

不幸的是,在切換到渲染引擎的另一個更符合標準,如果你處理的是這樣寫的不好的是IE 9的在標準一致性愚蠢的嘗試它帶給其膝蓋的代碼,這是不可能的瀏覽器將帶來很多成功。

+0

你的GeckoFx鏈接已舊。 Geckofx積極維護在http://bitbucket.org/geckofx/ – Tom 2013-03-15 18:07:52

+0

@Tom謝謝,我會更新它! – 2013-03-16 05:50:16

+0

感謝您的偉大答案! :)將在明天在辦公室看看替代方案.. :) – sharkyenergy 2013-03-17 14:44:51

相關問題