1

我正在尝试使用 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 新手,所以是的,我用谷歌搜索它,但不明白除了异步脚本下载之外如何改进它)

4

0 回答 0