簡體   English   中英

ac3 webbrowser中的帶IE11的ol3控件鼠標單擊事件不起作用

[英]ol3 with IE11 in a c# webbrowser control mouse click events not working

我已經使用webbrowser控件將ac#應用程序內的瀏覽器“升級”到IE 11。

當我將網頁加載到IE 11瀏覽器中時,所有內容都會在地圖上正常運行。

當我進入C#應用程序時,所有內容都會正常加載,但不能單擊地圖並將其拖動。

我所有的地圖點擊事件也不會觸發。

我可以使用箭頭鍵移動地圖,並且滾輪鼠標也可以使用。

我已經注意到,當我本機使用IE 11並將開發人員工具與“打破所有異常”結合使用時,在ol3中檢查其是否支持PointerEvent.HAS_BUTTONS時,我在ol3中收到一個錯誤,說對象不支持此操作。

錯誤是使用ol-3.4.0的ol-debug.js的44619行

注意:是的,我已經為我的應用程序名稱的32位和64位密鑰,以及為該應用程序的vhost.exe版本設置了正確的browser_emulation注冊表值。

更新

我還應該注意,如果我使用

map.on('click', function(e) { 
    //do stuff
    });

沒有開火...但是,如果我使用jquery並執行

$(map.getViewport().on('click', function(e) {
//do stuff
});

...然后我的點擊事件起作用...

我知道這是一個較晚的帖子,但希望它對其他人有所幫助可能會有所幫助。

我的想法完全相同:使用兼容性設置為IE11的WebBrowser控件會導致OpenLayers 3在顯示2D地圖時忽略鼠標單擊。 我嘗試過CefSharp 3,並且可以肯定地解決了這個問題,但是還有其他原因無法為我使用。 經過大量的反復試驗,我偶然發現了一個可行的解決方案:

    <meta http-equiv="X-UA-Compatible" content="IE=11" />
    <script>
        if (navigator.appVersion.indexOf("MSIE 7.") !== -1)
        {
            delete window.PointerEvent;
            window.navigator.msPointerEnabled = false;
        }
    </script>

這需要在包含ol.js之前的頁面上。

這是對頁面是否確實在WebBrowser控件中運行的粗略測試,但由於不再支持IE7,因此已經足夠。 “ MSIE 7”的唯一真實實例。 用戶代理字符串中的,將來自默認的WebBrowser控件。

到目前為止,我還沒有發現任何其他OpenLayers問題。

因此,我決定回滾到IE10。 一切都可以在本機瀏覽器和WebBrowser控件中運行。

IE11破壞了太多內容,因此目前不值得進行“升級”。

我將在將來沒有足夠的時間投入即將發布的版本時檢查CefSharp。

我和你幾個月前的處境相同。 不起作用的鼠標事件只是第一個症狀。 我強烈建議您使用Chromium,因為最后,您沒有使用IE11(Webbrowser控件基於IE9內核),並且可以“有點”影響它的工作原理,但是:這是一個復雜的問題,您無法真正更新瀏覽器,進行調試等。Chromium的工作原理非常好,您可以將其完全嵌入解決方案中,單獨對其進行調試或測試,並且它基於現代的chrome。 要將其集成到.net解決方案中,可以使用:

https://github.com/cefsharp/CefSharp

問候

該問題與舊版輸入模型有關,默認情況下,該舊版輸入模型已為應用程序托管的WebBrowser控件啟用。

要使您的OpenLayers3應用程序正常工作,您必須在注冊表中將其禁用。 為此,您必須將應用程序的FEATURE_NINPUT_LEGACYMODE設置為0 如果FeatureControl分支中不存在此密鑰,則必須手動創建。

有關舊式輸入模型的更多信息,請閱讀this

在winforms中,ol3 / WebBrowser出現了很多問題,例如許多功能無法正常運行。 在HTML標頭中添加此代碼后,它非常完美:

<head>
    <meta http-equiv="X-UA-Compatible" content="IE=10,chrome=1" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM