OL3用IE11在C#WebBrowser控件鼠标点击事件不工作(ol3 with IE11 in

2019-10-22 17:30发布

我已经“升级”到IE 11中使用WebBrowser控件C#应用程序的浏览器。

当我打开我的网页到IE浏览器11本身一切正常在地图上。

当我在C#应用程序加载的一切没有错误,只是我不能在地图上点击并拖动它。

我所有的地图,请点击事件也不会触发。

我可以用方向键来移动地图,以及滚轮鼠标也适用。

我注意到,当我使用IE 11本身,并使用开发工具与“打破所有异常”,我得到的时候,如果PointerEvent.HAS_BUTTONS的检查是支持OL3一个错误,说对象不支持此操作。

误差是OL-debug.js的44619线,采用OL-3.4.0

注意:是的,我为browser_emulation两个为我的应用程序名称的32位和64位密钥,以及一个用于应用程序的vhost.exe版本设置正确的注册表值。

更新

我还要指出的是,如果我使用

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

有什么...开除不过,如果我使用jQuery和做

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

......然后我点击事件工作....

Answer 1:

我知道这是一个有点晚了帖子,但我希望它可以帮助别人,如果他们越过它绊倒。

我是在完全相同的船:使用具有兼容性设定为IE11是造成的OpenLayers 3到显示2D地图时,忽略鼠标按钮点击web浏览器控件。 我试过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”的唯一真正实例 在用户代理字符串将是从默认web浏览器控件。

我还没有发现任何其他的OpenLayers问题呢。



Answer 2:

所以,我决定回滚到IE10。 一切工作都在原生浏览器和WebBrowser控件。

IE11打破了太多的东西,是不值得的“升级”,在这个时间点。

我会在以后检查出CefSharp,只是没有足够的时间投入到即将发布。



Answer 3:

我是比你同样的情况在几个月前。 非正常工作的鼠标事件,仅仅是首发症状。 我强烈建议你使用Chromium的,因为在年底,你是不是使用IE11(Web浏览器控件是基于IE9内核),你只可以影响“有点”它是如何工作的,但如果你有一个复杂的问题,你有没有办法真正更新您的浏览器,调试等工程铬罚款真的,你可以在你的解决方案完全将其嵌入,分别出演其调试或测试,它是基于一个现代化的铬。 它集成了.NET解决方案,你可以使用:

https://github.com/cefsharp/CefSharp

问候



Answer 4:

问题是关系到传统输入模式,默认情况下,通过应用程序托管的WebBrowser控件启用。

为了让您的OpenLayers3应用程序的工作,你必须在注册表来禁用它。 要做到这一点,你必须设置FEATURE_NINPUT_LEGACYMODE0为您的应用程序。 如果该键不存在的FeatureControl分支,你必须手动创建它。

有关传统输入模型的更多信息,请阅读此 。



Answer 5:

我的WinForms有很多的问题与OL3 / web浏览器,想了很多的工作不正常功能; 我加在HTML头在此之后,它是完美的:

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


文章来源: ol3 with IE11 in a c# webbrowser control mouse click events not working