Google maps Google地图和Richfaces 3.3.3(prototype.js 1.6.0.3)可能不兼容

Google maps Google地图和Richfaces 3.3.3(prototype.js 1.6.0.3)可能不兼容,google-maps,google-maps-api-3,richfaces,prototypejs,Google Maps,Google Maps Api 3,Richfaces,Prototypejs,我有一个基于RichFaces 3.3.3的web应用程序,它使用Google地图(Maps api v3),直到最近还运行良好 最近未能绘制地图的用户控件。贴图绘制得很好,但控件不显示,例如,贴图类型或缩放控件 稍微调查一下,这似乎是prototype.js的兼容性问题 如果您只是将这一行添加到中的示例中: 并且用户控制dissapear 有人知道如何解决这个问题 现在,我将尝试将richfaces中的prototype.js更改为更现代的版本。。。当我知道更多时,我会更新 提前谢谢 ---更

我有一个基于RichFaces 3.3.3的web应用程序,它使用Google地图(Maps api v3),直到最近还运行良好

最近未能绘制地图的用户控件。贴图绘制得很好,但控件不显示,例如,贴图类型或缩放控件

稍微调查一下,这似乎是prototype.js的兼容性问题

如果您只是将这一行添加到中的示例中:

并且用户控制dissapear

有人知道如何解决这个问题

现在,我将尝试将richfaces中的prototype.js更改为更现代的版本。。。当我知道更多时,我会更新

提前谢谢

---更新---

  • 使用谷歌地图的生产版解决了这个问题。现在需要显式地将v=3放入src in script标记中。谢谢,莫勒博士
  • 将prototypejs更新为(1.7.2)。也适用于实验。谢谢@eepete
---更新2---

  • 使用v=3不再适用于richfaces 3.3.3(prototype-1.6.0.3.js)。如果您需要使用这个旧版本的prototype,现在您需要在google地图中显式使用v=3.17
换句话说,在您的页面中使用此选项以实现与prototype-1.6.0.3.js的Backguard兼容性:

<script src="https://maps.googleapis.com/maps/api/js?v=3.17"></script>


今天早上我也有同样的问题。出现相同错误,缩放控件等控件将无法渲染。我将prototype.js从版本(1.7)升级到最新版本(1.7.2),一切又恢复了正常。我使用谷歌地图api V3,生产版本。不知道它是不是新版本的prototype.js,或者谷歌是否改变了一些东西,然后又修复了一些东西,但现在它很开心。

是的!!我的解决方案是将线路从:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false" />



谢谢

更改为v3版,与prototype的冲突将消失,我已在我的网站上尝试过,效果良好。

prototype.js中第629ish行的此函数导致异常。只需添加try-catch块,如下所示。它适用于任何谷歌地图API

收集:函数(迭代器、上下文){ iterator=iterator?iterator.bind(上下文):Prototype.K; var结果=[]; 试一试{ 每个函数(值、索引){ push(迭代器(值,索引)); }); }捕获(错误){} 返回结果;
}尝试使用Maps API的发行版(演示使用的是实验版),我没有收到发行版的错误。你完全正确。非常感谢,救命恩人!非常感谢。我认为谷歌最近在实验版本中改变了一些东西。你可以重新检查你是否真的在使用地图的发行版,我在不知不觉中使用了实验版。也许你需要将
v=3
显式添加到你的
script
标记中,或者你的src中有
v=3.exp
,你必须删除
.exp
部分。无论如何,如果你能更新'prototype.js',这似乎是最好的解决方案。我使用的脚本标记是:''。所以我猜这应该是生产版本?如果是“../js?v=3.exp?sensor=false”,则将使用实验数据。如果我理解正确,建议使用标记“../js?v=3?sensor=false”显式获取生产版本。我会试试看,谢谢你的回复。没错!如果将“maps.googleapis.com/maps/api/js?sensor=false”放在浏览器中,您将在响应(js文件)的末尾看到一行:“getScript(”);”如果将“maps.googleapis.com/maps/api/js?sensor=false&v=3”放在浏览器中,您将看到getScript(“);”;。我认为18/0对应于实验,17/15对应于生产。。。我不知道为什么谷歌现在默认发送18个。。。不管怎么说,问题解决了,我想我会更新帖子,并将你的答案标记为解决方案。就在今天,我用OpenLayers和谷歌地图构建的应用程序停止工作。将PrototypeJS从古老的1.7.rc3更新到1.7.2成功了!谢谢我试试看
<script src="https://maps.googleapis.com/maps/api/js?v=3.17"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&v=3" />