Javascript 带有本地url的谷歌地图标记图像赢得';t在Safari mobile iOS 6中显示
我有一个谷歌地图嵌入在我的网页,我想创建一个标记使用自定义图像。下面是添加标记的代码。”map'是一个表示Google map对象的变量Javascript 带有本地url的谷歌地图标记图像赢得';t在Safari mobile iOS 6中显示,javascript,html,google-maps,google-maps-api-3,mobile-safari,Javascript,Html,Google Maps,Google Maps Api 3,Mobile Safari,我有一个谷歌地图嵌入在我的网页,我想创建一个标记使用自定义图像。下面是添加标记的代码。”map'是一个表示Google map对象的变量 function addMarker(location) { var image = new google.maps.MarkerImage("tree.gif", null, null, null, new google.maps.Size(16, 24)); marker = new google.maps.Marker({
function addMarker(location) {
var image = new google.maps.MarkerImage("tree.gif", null, null, null, new google.maps.Size(16, 24));
marker = new google.maps.Marker({
position: location,
map: map,
icon: image
});
};
这在IE 8、Chrome 25、Firefox 19和Safari 5(桌面)中运行良好-创建标记并显示tree.gif图像。但是,这在iOS 6(iPad和iPhone)上的Safari mobile中不起作用
在以下情况下,这在Safari mobile上有效:
这不是解决办法,但我明白了为什么会发生这种情况。如中所述,除其他地方外,iOS 6中的Safari似乎只允许每个主机一次只有一个http连接 正如上面的代码所示,只要我创建了一个新的EventSource,Safari就会只打开该新连接(到“/pickups”)并忽略原始连接(到“/map”)。在该点之后,将不会获取原始连接上的任何其他资源,包括my tree GIF。这就解释了为什么默认的谷歌地图标记(从Google.com获取)和来自其他主机的图像可以正常工作 在找到更好的解决方案之前,我将对Safariios6客户端使用轮询,而不是EventSource
var source = new EventSource('../pickups');