Google地图脚本仅在我第一次打开页面时加载

时间:2015-04-19 09:26:27

标签: javascript html google-maps

关注此tutorial我已将google地图组件添加到我的rails 4项目中。现在,当我在浏览器中打开我的页面时(地图位于着陆/索引页面上),地图会显示,但是当我使用导航移动时,然后返回地图就不存在了。我是rails的新手,不知道如何修复它,或者它为什么会发生。控制台中没有错误。

以下是我正在谈论的网页的HTML:

<script>
function initialize() {
var mapOptions = {
    zoom: 16,
    center: new google.maps.LatLng(46.04236, 14.48786)
  };

  var map = new google.maps.Map(document.getElementById('googleMap'),
      mapOptions);
}

function loadScript() {
  var script = document.createElement('script');
  script.type = 'text/javascript';
  script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp' +
      '&signed_in=true&callback=initialize';
  document.body.appendChild(script);
}

window.onload = loadScript;
</script>

<div class="col-xs-12 ">
    <div class="panel panel-default">
        <div class="panel-heading center">
            <h3 class="panel-title">Lokacija</h3>
        </div>
        <div class="panel-body">
            <div class="col-xs-6 center">
                <br />
                <br />
                <br/ >
                <br />
                <p>Institut Jožef Stefan</p>
                <p>Knjižnica</p>
                <p>Jamova 39</p>
                <p>1000 Ljubljana</p>
                <br />
            </div>
            <div class="col-xs-6">
            <div id="googleMap"></div>
            </div>              
        </div>
        <div class="panel-heading center">
            <h3 class="panel-title">Telefonske številke</h3>
        </div>
        <div class="panel-body">
            <div class="col-xs-6">
                <p>informacije:</p>
                <p>izposoja:</p>
                <p>bibliografije:</p>
                <p>vodja knjižnice:</p>
                <p>fax:</p>                                             
            </div>
            <div class="col-xs-6 right">
                <p>+386 1 477-3304</p>
                <p>+386 1 477-3304</p>
                <p>+386 1 477-3247</p>
                <p>+386 1 477-3258</p>
                <p>+386 1 477-3152</p>
            </div>
        </div>
        <div class="panel-heading center">
            <h3 class="panel-title">Delovni Čas</h3>
        </div>
        <div class="panel-body">
            <div class="col-xs-6">
                <p>ponedeljek-četrtek:</p>
                <p>petek:</p>
            </div>
            <div class="col-xs-6 right">
                <p>8.00-19.00</p>
                <p>8.00-17.00</p>
            </div>
        </div>
        <div class="panel-heading center">
            <h3 class="panel-title linktext"><%= link_to 'Cenik', zic_cenik_path %></h3>
        </div>

    </div>
</div>

与gmaps相关的所有内容都在这里。如果您需要更多信息,请告诉我,我将编辑主要帖子。我还有整个页面的gitHub个回购。这里的相关视图是zic / index。

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,用这条线解决了这个问题,并且没有必要禁用turbolinks:

google.maps.event.addDomListener(document, 'page:change', initialize);

答案 1 :(得分:0)

听起来问题是你打开了Turbolinks,当你离开然后回来时,页面实际上并没有收到加载消息。您可以关闭Turbolinks,将google地图脚本标记添加到应用程序布局文件的标题中,或者尝试使用&#34;页面重新加载它:更改&#34;事件。有关Turbolinks的更多信息,请访问:http://guides.rubyonrails.org/working_with_javascript_in_rails.html#turbolinks