0

我正在使用 ruby​​ on rails 构建一个应用程序,我刚刚使用 javascript 代码在视图中使用“HERE 交互式地图”API 实现了一个地图服务。

它可以正常工作,但是如果我单击一个链接然后使用浏览器“返回”,当它重新加载页面时,地图会变成灰色,并且它会在灰色块下方加载另一个工作地图。如果我使用浏览器重新加载按钮,它会重新加载所有内容,并且再次仅显示一个工作地图。

那么它可能会保存一些东西,我怎样才能避免这种行为并强制脚本重新加载为新的?

这里有一些代码(只是从网站复制和粘贴,但它已经不起作用)


<div id="map" style="height: 500px; margin: 2%; background: grey" > </div>

<script type="text/javascript">
  // Initialize the  communication with the platform
  var platform = new H.service.Platform({
    'app_id': '....',
    'app_code': '....'
  });
  var pixelRatio = window.devicePixelRatio || 1;
  var defaultLayers = platform.createDefaultLayers({
    tileSize: pixelRatio === 1 ? 256 : 512,
    ppi: pixelRatio === 1 ? undefined : 320
  });

  //Initialize map
  var map = new H.Map(document.getElementById('map'),
    defaultLayers.normal.map, {
      pixelRatio: pixelRatio,
      zoom: 12,
      center: { lat: 41.90, lng: 12.5 }
    });

  //for interactions and UI components
  var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
  var ui = H.ui.UI.createDefault(map, defaultLayers);

  ...markers.... 
</script>

4

2 回答 2

0

也许它不是最好的,但我使用这段代码修复了它

if (document.readyState=='complete'){
  location.reload();
}

document.addEventListener('DOMContentLoaded', function(){
   // rest of code 
});
于 2019-05-24T12:42:10.630 回答
0

如果您不使用 jquery,请尝试将您的 js 包装在准备好的文档中:

document.addEventListener('DOMContentLoaded', function() {
    // rest of your js goes inside here
}, false);

或者如果你有 jquery,那么:

$(document).ready ( function() {
   // rest of your js goes inside here
});​
于 2019-05-23T19:02:47.100 回答