我在我的Rails 3.2.2应用程序上运行了gmaps4rails gem版本1.4.5。我刚刚抓住了1.4.5文档中描述的示例信息框设置。看起来很漂亮!
所以我终于在IE8上检查了它,并且信息框的背景不存在,在Safari和Firefox上我得到一个漂亮的黄色,%75不透明度,在IE8上我根本没有背景。
在使用CSS后,我放弃了,并决定抓住最新版本的gmaps4rails 1.4.8。我注意到它现在支持google infobox.js插件。所以我追踪它,发现有多个版本,不知道哪个版本适用于gmaps4rails 1.4.8,我选择了infobox.js 1.9,最新版本。
所以我把它贴在app / assets / googlemaps.js清单中就像这样:
//= require infobox.js
//= require ./gmaps4rails.base.js.coffee
//= require ./gmaps4rails.googlemaps.js.coffee
我已经尝试过将infobox.js包含在内的几种不同的排列。
我在usamap.html.erb:
中解雇了整个事情<%= javascript_include_tag "lbrokers" %>
<%= gmaps("markers" => {"data" => @json, "options" => {"custom_infowindow_class" => "infobox", "auto_adjust"=>false}}) %>
lbrokers.js显示如下:
//= require gmaps4rails/googlemaps.js
当我点击该页面时,我明白了:
google is not defined
http://localhost:3000/assets/infobox.js?body=1
Line 128
从我最初设置gmaps4rails到现在之间的几个月。即使我安装了1.4.8 Gem,我真正做的只是从Github上的gmaps4rails 1.4.8抓取gmaps4rails.base.js.coffee和gmaps4rails.googlemaps.js.coffee并将其内容粘贴到app中的先前文件中/资产/ javascripst / gmaps4rails。这是在调用usamap.html.erb之前呈现的布局文件:
<% content_for :html_foot do %>
<%= yield :scripts %>
<script type="text/javascript">
$(document).ready(function() {
var centerpoint = new google.maps.LatLng(38, -97);
gMap = new google.maps.Map(document.getElementById('map'));
gMap.setCenter(centerpoint);
});
Gmaps.map.infobox = function(boxText) {
return {
content: boxText
,disableAutoPan: false
,maxWidth: 0
,pixelOffset: new google.maps.Size(-140, 0)
,zIndex: null
,boxStyle: {
background: "url('http://google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.5/examples/tipbox.gif') no-repeat"
,opacity: 0.75
,width: "380px"
}
,closeBoxMargin: "10px 2px 2px 2px"
,closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif"
,infoBoxClearance: new google.maps.Size(1, 1)
,isHidden: false
,pane: "floatPane"
,enableEventPropagation: false
}};
</script>
<% end %>
这与在gmaps4rails 1.4.5上运行良好的信息框设置相同。现在我正在使用infobox.js插件,noworky!
我在某处出错了,infobox.js 1.9是错误的选择。 或者我通过复制两个gmaps4rails咖啡脚本并将它们粘贴到app / assets / javascripts / gmaps4rails中搞砸了。
或者?????
任何人
答案 0 :(得分:2)
我现在已经通过
解决了这个问题 <script type="text/javascript" src="//google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.9/src/infobox_packed.js"></script>
在视图的布局中,并删除
//= require infobox.js
从显示地图的视图中使用的清单中。我正在将各种版本的infobox.js复制并粘贴到我的本地副本中,并通过资产管道提供服务。
IE8上仍然缺少背景,但我使用的是信息框1.1.9,还有更高版本,希望他们能修复缺少的背景。
我首先注意到,当我从1.4.5升级到1.4.6时,先前正在运行的gmaps4rails 1.4.5设置停止工作。所以我把1.4.5放回去继续。当我注意到IE8缺少infowindow背景时,gmaps4rails当时是1.4.8,它的行为与尝试的1.4.6升级相同。我只能假设在1.4.5和1.4.6之间发生了变化,要求你加载infobox.js插件。
另一个小点,在1.4.5聚类中默认打开,在1.4.8中它默认关闭,你必须通过将选项“do_clustering”=&gt; true传递给“markers”选项来打开它散列。
答案 1 :(得分:1)
找到IE8没有背景的原因,我不知道什么时候,也许几年前,我把这个添加到我的
<meta http-equiv="X-UA-Compatible" content="IE=7" />
当我这样做时没有任何想法,或为什么,但删除它修复了IE8上缺少的背景。