检测google.maps.MarkerImage对象是否为空

时间:2012-07-18 16:46:38

标签: javascript google-maps google-maps-api-3

我有一张谷歌地图,上面有几个标记。我从http://chart.apis.google.com/chart?chst=d_map_xpin_icon&chld=pin|glyphish_star|FFFF00|0000FF获取了我的标记。我的一些客户浏览器安全性阻止了这些图像的下载,我想检测这些图像并将它们还原为默认图像。

var gmMarkerImage = new google.maps.MarkerImage(
  "http://chart.apis.google.com/chart?chst=
    d_map_xpin_icon&chld=pin|
    glyphish_star|
    FFFF00|
    0000FF"
)

如何检测gmMarkerImage对象是不是图像还是空?或者我如何确定我没有从chart.apis.google.com网站收到任何内容?

1 个答案:

答案 0 :(得分:0)

我认为Google Maps API不允许您访问底层DOM对象。您收到的MarkerImage对象仅包含有关标记的信息,将其呈现为HTML或DOM对象将读取该信息。

如果我们退后一步,那么您的用户无法将此自定义网址用于其图片的原因可能是他们不信任非SSL参考(是吗?)。或者他们一般不信任chart.google.com域(这会被延迟,但仍然)。您可以通过在页面中包含未连接到地图的不可见图像来处理此图像并处理onError事件。图像上的onError通常表示无法加载资源,通常是因为404,403等...当此图像收到错误时,您可以迭代所有标记并将其URL设置为回退。