【发布时间】:2010-11-15 15:22:32
【问题描述】:
在显示 KML 文件的内容时,我在使用 fancybox 和 google maps(v3) 时遇到了一些问题。
在显示包含描述的气球时,我有一个图像的缩略图,我想在使用 fancybox 单击时显示该图像。我遇到的问题是,当单击缩略图时,fancybox 会显示,但浏览器也会生成一个显示全尺寸图像的新窗口。
我知道在解析 KML 文件时,任何 href 标记都添加了 target 属性,因此我尝试在地图加载后将其删除,同时我将 fancybox 附加到链接。
我在尝试之前确保地图已加载:即
function updatemap(surveyid){
var map;
var myOptions = {
zoom: 5,
mapTypeId: google.maps.MapTypeId.HYBRID
};
var url = "https://myurl/feed/kml.php?action=survey&id=" + surveyid;
map = new google.maps.Map(document.getElementById("googlemap"), myOptions);
var kmlLayer = new google.maps.KmlLayer(url);
kmlLayer.setMap(map);
google.maps.event.addListener(map, "tilesloaded", function(){
attachFancyBox();
});
}
attachFancyBox() 函数如下所示。
function attachFancyBox(){
$("a:has(img)").fancybox({
"hideOnContentClick":true
}).removeAttr("target");
}
现在这将适用于 firefox,但其他浏览器(IE7+、safari、chrome)的行为与上述相同。那么有没有一种方法可以在不产生新窗口/标签的情况下实现在fancybox中显示图像??
非常感谢...
【问题讨论】:
标签: jquery google-maps fancybox kml