【发布时间】:2013-11-04 17:40:05
【问题描述】:
我按照官方文档中的这些简单说明进行操作:https://developers.google.com/maps/documentation/javascript/tutorial
当我第一次打开该网站时一切正常。地图显示正常。问题是当我导航到网站的其他部分时。回到地图应该在的位置后,地图不显示了。
这是基本结构:
<ul>
<li><%= link_to "Home", root_path %></li>
<li><%= link_to "About", about_path %></li>
<li><%= link_to "Contact", contact_path %></li>
</ul>
“联系人”中的 Javascript:
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?key=xxx&sensor=false">
</script>
<script type="text/javascript">
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(-34.397, 150.644),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map-canvas"),
mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
<h1>Contact</h1>
<p>
Address & phone number
</p>
<div id="map-canvas" style="width: 35em; height: 35em;"/>
所以,如果我在“主页”页面上打开网站,然后导航到“联系方式”,则没有地图。但是如果我刷新“联系人”站点,就会出现地图。可能是什么问题?
谢谢。
EDIT1:
我试图将我的代码放入准备好的函数中:
$.getScript('https://maps.googleapis.com/maps/api/js?key=xxx&sensor=false');
var mapOptions = {
center: new google.maps.LatLng(-34.397, 150.644),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map-canvas"),
mapOptions);
但是当我这样做时,代码会在这一行中断:
center: new google.maps.LatLng(-34.397, 150.644),
【问题讨论】:
-
是的,我使用的是 Rails 4。
-
好吧,由于 turbolinks,将 google 脚本放入您的布局中以进行快速修复。顺便说一句,我刚刚发布了新版本的 gmaps4rails,它可以提供帮助!
-
@apneadiving - 我应该把谷歌脚本放在哪里?我将它们放在views/layouts/application.html.erb 中,但只有在我刷新“联系”页面时它仍然有效。如果我打开主页并单击“联系”,则没有地图。地图仅在我刷新该页面时显示。
-
不明白这个问题,对不起
-
@ZdravkoVajudin 请你制作一个 jsfiddle.net 来说明这个问题吗?您可能只需要使用您的 rails 应用程序生成的原始 HTML。
标签: javascript jquery ruby-on-rails google-maps