我正在使用默认脚本标记加载Google地图,如下所示
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>
有没有办法在页面加载后覆盖此API_KEY?或者甚至创建另一个谷歌地图实例而不影响原始实例?
这是AB测试所必需的,以避免它影响整个网站中使用的原始API_KEY。
可能无法使用iframe方法,因为需要在地图中附加几个标记。
谢谢。
如果其他人遇到同样的问题,首先需要重置当前的地图实例
google.maps = undefined;
然后你可以只包括你自己的脚本
var scriptNode = document.createElement('script');
scriptNode.src = GOOGLE_MAPS_URL_WITH_NEW_KEY;
document.head.append(scriptNode);
它以这种方式工作。
注意:如果您有任何其他依赖项,例如Infobox,您可能需要再次添加它们
你可以像这样添加编辑你的src属性(jQuery):
$("script").attr("src", YOUR_URL_HERE_WITH_AN_API_KEY_CHANGE);