1

我在我的winforms應用程序中使用WebBrowser控件和Smooth Div Scroll來呈現html選框。我下載了樣品,並添加腳本在dotnet WebBrowser控件中運行速度較慢

autoScrollingInterval: 3 

$("div#makeMeScrollable").smoothDivScroll({ 
    autoScrollingMode: "onStart" 
}); 

,使其移動速度更快。當我在IE中打開示例時,它工作得很好,但是當我使用WebBrowser控件並調用導航方法時,滾動器移動速度要慢得多。

是什麼導致了這個問題?

回答

12

據我所知,你正在處理的問題是在IE 7標準模式下WebBrowser Control呈現的版本問題,而你在IE中使用的實際WebBrowser是IE 8或IE 9,並且它在那裏工作,但你的JQuery/JavaScript或CSS包含在IE 7中不起作用。

讓我直接告訴你。 默認的渲染引擎webbrowser控件是固定的,以確保所有的 平臺兼容。

基本上,如果您安裝的瀏覽器是IE 7 - IE 9,那麼使用的 渲染引擎僅僅是IE 7.0(默認情況下)。

但是,如果您安裝的IE版本是IE 6或更低版本,那麼所用的渲染引擎是IE 4.0(而不是開玩笑),除非您自己設置了它,否則它會被設置爲 。

WebBrowser控件使用當前安裝的任何 (當前IE版本),但這不是真的,因爲他們這樣做是爲了減少向後兼容性問題。您可以在您的普通瀏覽器中看到 (作爲證明),這確實是您的問題,因爲您需要在您的普通瀏覽器中登錄 www.whatsmyuseragent.com,然後在您的WebBrowser控件中再次登錄 該網站,您會看到它說 表示MSIE 7.0 :)。

你可以將其設置爲使用互聯網 資源管理器的當前安裝的版本,無論是使用網頁META標記,或者機器,其中WebBrowser控件將運行在編輯註冊表 (編輯爲 CURRENT_USER和LOCAL_MACHINE會兩個工作)。

WebBrowser控件將(通常)使用您安裝的任何版本的IE,但是出於兼容性原因,它默認會在IE7標準模式下呈現頁面 。

如果你想利用新的IE9的功能,你應該添加 meta標籤<meta http-equiv="X-UA-Compatible" content="IE=9" > 你的HTML頁面的<head>標籤內。

這個元標記必須在任何鏈接到CSS添加,JavaScript的 文件等,同時也是在<head>正常工作,但(僅 其他<meta>標籤或<title>標籤前,可以來)。

另一種方法是一個註冊表項添加到:

HKLM> SOFTWARE>微軟> Internet Explorer中>首頁> FeatureControl> FEATURE_BROWSER_EMULATION

,並在那裏加入 'YourCompiledApplicationName.exe'值爲'9000'至 強制WebBrowser控件以IE9模式顯示頁面。雖然 還有其他值也可以使用,請注意,這些文檔 並不完全準確,因爲無論使用哪種值,似乎都無法使頁面 以IE 8模式呈現。 (注意:YourCompiledApplicationName.exe必須是您編譯的EXE文件名,其中包含您的WebBrowser控件,它只適用於包含在註冊表中的文件名)。此外,它不會傷害添加vshost.exe和YourCompiledApplicationName.exe.svchost所以它通過您的IDE運行時,並且,如果您的應用程序在64位Windows下運行,您可能還應該在以下注冊表路徑下設置以下DWORD相同的值(每32位路徑):

HK [LM | CU] \ SOFTWARE \ Wow6432Node \微軟\的Internet Explorer \ MAIN \ FeatureControl \ FEATURE_BROWSER_EMULATION

添加註冊表項在HKCU而不是HKLM 也將工作 - 這是寫給HKLM需要管理員 作爲HKCU沒有的特權。

不知道當IE 10.0出來,如果在WebBrowser控件 默認引擎會去10.0(如果安裝在 當然系統10.0),或者如果它甚至會後IE 10.0 釋放仍然爲IE 7.0,我們將不得不看它一旦出來。但是,如果我們根據以前的經驗猜測,我懷疑IE 10.0將會是 最後一個版本,它使用IE 7.0渲染引擎,而當IE 11出現時,默認渲染引擎將保持IE 11的所有版本的 版本IE IE 11 & IE 14之間的IE瀏覽器。這只是 推測他們過去所做的事情。

有關您可以設置註冊表的值的更多信息,check this out:

+0

感謝您的詳細解答。我會檢查它併發布結果。 – reticent

+0

瀏覽器仿真值參考@ http://msdn.microsoft.com/en-us/library/ee330730(v=vs.85).aspx –