我已经“升级”到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
});
......然后我点击事件工作....
我知道这是一个有点晚了帖子,但我希望它可以帮助别人,如果他们越过它绊倒。
我是在完全相同的船:使用具有兼容性设定为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问题呢。
所以,我决定回滚到IE10。 一切工作都在原生浏览器和WebBrowser控件。
IE11打破了太多的东西,是不值得的“升级”,在这个时间点。
我会在以后检查出CefSharp,只是没有足够的时间投入到即将发布。
我是比你同样的情况在几个月前。 非正常工作的鼠标事件,仅仅是首发症状。 我强烈建议你使用Chromium的,因为在年底,你是不是使用IE11(Web浏览器控件是基于IE9内核),你只可以影响“有点”它是如何工作的,但如果你有一个复杂的问题,你有没有办法真正更新您的浏览器,调试等工程铬罚款真的,你可以在你的解决方案完全将其嵌入,分别出演其调试或测试,它是基于一个现代化的铬。 它集成了.NET解决方案,你可以使用:
https://github.com/cefsharp/CefSharp
问候
问题是关系到传统输入模式,默认情况下,通过应用程序托管的WebBrowser控件启用。
为了让您的OpenLayers3应用程序的工作,你必须在注册表来禁用它。 要做到这一点,你必须设置FEATURE_NINPUT_LEGACYMODE
以0
为您的应用程序。 如果该键不存在的FeatureControl
分支,你必须手动创建它。
有关传统输入模型的更多信息,请阅读此 。
我的WinForms有很多的问题与OL3 / web浏览器,想了很多的工作不正常功能; 我加在HTML头在此之后,它是完美的:
<head>
<meta http-equiv="X-UA-Compatible" content="IE=10,chrome=1" />