Javascript 谷歌地图API v3.19在Internet Explorer怪癖模式下被破坏
谷歌地图API的3.19版于2015年2月17日成为默认地图“发布版”(见)。在使用Internet Explorer时,该版本似乎会导致出现问题,我从受此问题影响的应用程序生成的以下测试页面证明了这一点(因此,这可能包括比此处所需更多的代码): 版本3.17将被删除。3.17或任何先前版本的请求现在将在3.18版本中送达 当此页面显示(在页面底部): 这相当令人困惑,但我认为Changelog链接是最新的信息来源。这种差异让我困惑,因此我认为值得分享这一观察结果Javascript 谷歌地图API v3.19在Internet Explorer怪癖模式下被破坏,javascript,google-maps,Javascript,Google Maps,谷歌地图API的3.19版于2015年2月17日成为默认地图“发布版”(见)。在使用Internet Explorer时,该版本似乎会导致出现问题,我从受此问题影响的应用程序生成的以下测试页面证明了这一点(因此,这可能包括比此处所需更多的代码): 版本3.17将被删除。3.17或任何先前版本的请求现在将在3.18版本中送达 当此页面显示(在页面底部): 这相当令人困惑,但我认为Changelog链接是最新的信息来源。这种差异让我困惑,因此我认为值得分享这一观察结果 2015年2月20日更新:
2015年2月20日更新: 昨天谷歌确认这是一个Bug,并建议“我们正在寻找修复方案” 感谢您的评论和建议,但到目前为止,我还没有找到一种方法可以让我的应用程序完全工作,因为其他页面组件依赖于怪癖模式,需要做大量工作才能使整个程序重新工作。我希望谷歌的关注能为我解决这个问题
2015年2月21日更新:
现在表示“将在下周部署修复程序”。今天在我刚继承的web应用程序中发现了相同的问题。出于某种原因,以前的开发者强迫IE进入怪癖(ie7)模式,谷歌api问题从今天开始。我已经更新了html主页以使用IE边缘模式,将html标题部分从
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=7" />
.....
.....
到
.....
(如果缺少,请添加ie edge meta…行)
到目前为止,它已经解决了这个问题
现在,为了找出以前的开发者为什么要强制IE7模式……我们正在使用GMLib Google Maps delphi组件,我们遇到了同样的问题。GMLib组件在内部使用TWebBrowser组件 在GMLib组件的资源文件中,我们找到了一个map.html文件。 我们在html文件的部分添加了以下行
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
然后,我们将资源文件重新编译到组件中,重新编译了delphi项目,它成功了
我想这是使用相对不受支持的免费组件的缺点之一
我们现在正在考虑使用商业付费的谷歌地图组件,以降低再次发生这种情况的风险。在我的例子中(.net 4 visual c#集成了webbrowser)为了解决这个问题,我只添加了&v=3
似乎如果你不指定版本,它将使用实验版本。。。奇怪。这个很好用
< script src="https://maps.googleapis.com/maps/api/js&v=3.18" type="text/javascript"></script>
这是不可能的
< script type="text/javascript" src="https://maps.googleapis.com/maps/api/js&v=3.18"</script>
我在Delphi中有一个使用TWebBroser的应用程序,这是我找到的临时解决方案,但不是100%
因为要解决这个问题,我必须使用regedit在Windows上添加一个键。强制IE在版本中进行模拟
了解了我创建的密钥,为了更好地理解,请查看本文中的项目浏览器仿真
链接
此解决方案仅在安装了密钥中所述的IE版本时有效。我们在使用标准.net WebBrowser控件的C#程序中也遇到了同样的问题 我们还通过添加行解决了问题
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
请注意,它在使用Internet Explorer 7的Vista配置上不起作用,但在安装IE 9后(安装Service pack 1、Service pack 2、2个microsoft纠正补丁以及最后安装IE9本身的时间超过3个小时)就可以了。解决了:在IE8(XP)、IE9(Win7)上也有同样的问题以及Win 7和XP中的兼容模式。我添加了版本号,瞧!固定的 ?v=3&key= 指定v=3强制稳定释放。我没有这个版本标志的旧代码被Google解释为我想要的实验版本,而我的生产服务器永远不想要这个版本
仅供参考,我用我很高兴地说,谷歌以非常积极的方式回应了这个问题;他们很快将其归类为一个bug,建议他们正在处理它,今天我再次测试,发现“怪癖”问题不再存在,我的应用程序再次运行 我问的问题是‘除了向谷歌报告并希望他们解决这个问题之外,还有人能提出解决方案吗?’。我看到这个问题的应用程序(显然)严重依赖于怪癖模式,因此我在尝试删除该依赖关系时看到页面上其他组件存在许多问题,即问题变得更大。因此,谷歌解决这个问题确实是唯一对我有效的答案,我很高兴他们这么做了
感谢大家的帮助和贡献。在我的情况下,IE 11不响应谷歌地图。。。。 我的解决办法是: 第一点: 添加标题: 第二点: 添加JSV3:
关于您的测试页面可能会也可能不会让IE进入怪癖模式。你能用一个合适的HTML5
标题试试吗?这个应用程序相当旧,HTML行对于页面的其他元素似乎是必需的。然而,我改变了它,它确实提供了一个可用的地图,尽管左上角的导航箭头看起来很奇怪,在导航地图时移动了一点。感谢DOCTYPE上的提示,我现在将调查其影响。当Internet Explorer认为它显示的文档需要旧的行为时,它的行为会发生很大的变化。@Pointy-感谢您迄今为止的帮助,这让我有了进一步的了解。我在另一个问题中提出了导航箭头显示问题。不幸的是,我已经证明,我真的需要一个解决方案,将与现有的标题,因为我已经看到了其他公司的其他问题的数量
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
< script src="https://maps.googleapis.com/maps/api/js&v=3.18" type="text/javascript"></script>
< script type="text/javascript" src="https://maps.googleapis.com/maps/api/js&v=3.18"</script>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />