此页面上多次Google Maps JavaScript API错误

时间:2019-07-16 01:45:06

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

我不是tryingbeatdead horseHonest。这是一个不同的问题。

我有一个独立的js库,可以分发给其他开发人员。其中一种方法可在父页面提供的div上呈现google map。我无法控制调用我的库的页面上正在发生的事情。

有时,尽管我检查页面上是否已经加载了Google Maps API,但仍收到此错误:You have included the Google Maps JavaScript API multiple times on this page. This may cause unexpected errors.。我以以下方式(伪代码)对其进行了检查:

if (typeof google === 'object' && typeof google.maps === 'object') { 
   // google maps already loaded in the parent page - proceed
} else {
   // google maps not in the parent page.  Load my own copy
   var script = document.createElement('script');
   script.src = 'https://maps.googleapis.com/maps/api/js...';
   document.getElementsByTagName('head')[0].appendChild(script);        
}

因此,在进行一些调试之后,我发现了以下情况。

  1. 该页面引用了Google地图和我的图书馆
  2. 我的库加载,页面调用一个方法。
  3. 该库检查是否已加载Google Maps。此时,它仍在下载中,因此我的检查失败并加载了我自己的文件。
  4. 页面上引用的Google地图最终加载。
  5. 我的图书馆请求的Google Maps副本也会加载,并导致you have included the Google Maps JavaScript API multiple times on this page错误。

所以我的问题:

  1. 是否有可能捕获此错误并恢复为使用父页面请求的GM副本。
  2. 是否可以检测是否正在下载Google Maps库?
  3. 是否有一个我缺少的简单解决方案?

P.S。我可以告诉使用Google Maps API的开发人员等到地图加载完成后再调用我的库。但是,有太多人要告诉我,如果可能的话,我想最终解决这个问题。

0 个答案:

没有答案