Google Maps V3-覆盖API密钥

时间:2018-08-29 13:37:09

标签: javascript google-maps google-maps-api-3

我正在使用默认的脚本标签加载Google Maps,如下所示:

<script async defer
      src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
    </script>

加载页面后,是否可以覆盖此API_KEY?甚至在不影响原始实例的情况下创建Google地图的另一个实例?

AB测试需要这样做,以免影响整个网站使用的原始API_KEY。

iframe方法可能是不可能的,因为需要在地图中附加几个标记。

谢谢。

2 个答案:

答案 0 :(得分:0)

您可以像这样(jQuery)添加编辑src属性:

$("script").attr("src", YOUR_URL_HERE_WITH_AN_API_KEY_CHANGE);

答案 1 :(得分:0)

如果其他人遇到相同的问题,则首先需要重置当前地图实例

google.maps = undefined;

然后,您可以仅包含自己的脚本

var scriptNode = document.createElement('script');
scriptNode.src = GOOGLE_MAPS_URL_WITH_NEW_KEY;
document.head.append(scriptNode);

它以这种方式工作。

注意:如果您还有其他依赖项,例如信息框,则可能需要再次添加这些依赖项