我正在尝试使用 maps api(yandex,但我在 google maps 中也看到过类似的问题)并将其脚本包含在 head 中:
<!DOCTYPE html>
<html lang="en">
<head>
<title>site</title>
<meta charset="UTF-8">
<script src="https://cdnjs.cloudflare.com/ajax/libs/postscribe/2.0.8/postscribe.min.js">
<script async src="https://api-maps.yandex.ru/1.1/index.xml" type="text/javascript"></script>
<script type="text/javascript">
window.onload = function () {
var map = new YMaps.Map(document.getElementById("YMapsID"));
map.setCenter(new YMaps.GeoPoint(59.938518, 30.323342), 10);
};
</script>
</head>
这是身体:
<body>
<div class="map-block_map-item">
<div id="YMapsID" style="width:100%;height:100%">
</div>
</div>
</body>
但是当页面下载我收到这个警告:
“除非明确打开,否则无法从异步加载的外部脚本写入文档。”
如果我不使用 async 属性,则会收到此消息:
通过 document.write 调用一个解析器阻塞、跨站点(即不同的 eTLD+1)脚本https://api-maps.yandex.ru/1.1/_YMaps.js?v=1.1.21-58 。由于网络连接不佳,此脚本的网络请求可能会在此或将来的页面加载中被浏览器阻止。如果在此页面加载中被阻止,将在后续控制台消息中确认。有关详细信息,请参阅https://www.chromestatus.com/feature/5718547946799104
我怎么解决这个问题?据我了解,它发生在非常慢的连接上(但我的连接速度相当快,为什么?)它会导致阻止 document.written 脚本。(我是 js 新手,所以是的,我用谷歌搜索它,但不明白除了异步脚本下载之外如何改进它)