Angular - Javascript - Error: Can't find variable : google after reloading the page
Angular - Javascript - Error: Can't find variable : google after reloading the page
我用 Angular 2+ 建立了一个网站,并在我的 index.html 文件中包含 Google 地图 Api:
<script
async
defer
src="//maps.googleapis.com/maps/api/js?[myKey]&libraries=places">
</script>
<script src="//unpkg.com/@google/markerclustererplus@4.0.1/dist/markerclustererplus.min.js"></script>
在我仅在 Iphone 上重新加载页面后,地图不会显示,我收到错误消息:
"Can't find variable : google"
在 PC 和 Android 上工作正常。
我该怎么做才能解决这个错误?
看起来脚本 运行 乱序了,这是异步脚本加载的一个主要陷阱。具有 defer
或 async
属性的第一个脚本在浏览器继续时并行加载,并且仅在加载后执行,而第二个(同步)脚本在加载后立即阻止浏览器和 运行s (这发生在第一个脚本执行之后或之前,因此顺序是不可预测的)。
要保持顺序,请将 defer
添加到第二个脚本并从第一个脚本中删除 async
(使两者相等 defer
并因此按顺序),或者删除 defer
和 async
来自第一个脚本以使其正常加载。
我用 Angular 2+ 建立了一个网站,并在我的 index.html 文件中包含 Google 地图 Api:
<script
async
defer
src="//maps.googleapis.com/maps/api/js?[myKey]&libraries=places">
</script>
<script src="//unpkg.com/@google/markerclustererplus@4.0.1/dist/markerclustererplus.min.js"></script>
在我仅在 Iphone 上重新加载页面后,地图不会显示,我收到错误消息: "Can't find variable : google"
在 PC 和 Android 上工作正常。
我该怎么做才能解决这个错误?
看起来脚本 运行 乱序了,这是异步脚本加载的一个主要陷阱。具有 defer
或 async
属性的第一个脚本在浏览器继续时并行加载,并且仅在加载后执行,而第二个(同步)脚本在加载后立即阻止浏览器和 运行s (这发生在第一个脚本执行之后或之前,因此顺序是不可预测的)。
要保持顺序,请将 defer
添加到第二个脚本并从第一个脚本中删除 async
(使两者相等 defer
并因此按顺序),或者删除 defer
和 async
来自第一个脚本以使其正常加载。