在显示KML文件的内容时,我遇到了fancybox和google maps(v3)的一些问题。
当显示包含描述的气球时,我有一个图像的缩略图,我希望在使用fancybox点击时显示该图像。我遇到的问题是,当点击缩略图时,会显示fancybox,但浏览器也会生成一个显示完整尺寸图像的新窗口。
我知道在解析KML文件时,任何href标签都添加了目标属性,因此我在加载地图时尝试将其删除,同时将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中显示图像而不会产生新的窗口/标签?
非常感谢......
答案 0 :(得分:0)
对不起,我没时间完全重建您的案例,但可能原因不是target
,可能是因为Google Map脚本将click
个事件绑定到a
标签?在添加精美框之前尝试解除所有事件的绑定:
function attachFancyBox(){
$("a:has(img)").unbind()
.fancybox({
"hideOnContentClick":true
})
.removeAttr("target");
}