修复"您已在此页面上多次添加Google Maps API。这可能会导致意外错误。"

时间:2015-04-28 21:29:09

标签: ruby-on-rails api maps

我的标题中包含两个以下脚本,我收到错误"您已在此页面上多次添加Google Maps API。这可能会导致意外错误。"

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js key=************"></script>

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?libraries=places&sensor=false"></script>

当我删除任何一个脚本时,我会收到额外的js错误。如何在我的rails应用程序中正确地重构这两个脚本?

3 个答案:

答案 0 :(得分:17)

在上面的示例中,您将包含相同的脚本两次,但具有不同的参数。您应该能够通过包含脚本一次来解决您的问题,其中包含所有必需的参数:

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=YOUR_KEY_HERE&libraries=places&sensor=false"></script>    

答案 1 :(得分:7)

如果您通过ajax调用调用Google地图,则可以在退出调用地图的状态时使用window.google = {}

答案 2 :(得分:3)

我知道在我的情况下,它不是Rails应用程序,但可能对其他人有帮助......我正在使用React,当我在视图/页面之间切换时,我遇到了同样的错误。

和wLc一样,window.google = {}就像魅力一样工作,并且正在删除控制台中的错误,但是<script>标记仍然保留在html中,并且每次重新访问具有地图。

componentWillUnmount我添加了一些代码以删除代码。

const allScripts = document.getElementsByTagName( 'script' );
[].filter.call(
  allScripts, 
  ( scpt ) => scpt.src.indexOf( 'key=googleAPIKEY' ) >= 0
 )[ 0 ].remove();

 window.google = {};