2010-11-15 41 views
2

我在顯示KML文件的內容時遇到了fancybox和谷歌地圖(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

對不起,我沒有時間來完全重建你的情況,但可能的原因是不是target,可能的原因是谷歌地圖腳本綁定click事件a標籤?嘗試解除所有事件之前附加花式框:

function attachFancyBox(){ 
    $("a:has(img)").unbind() 
    .fancybox({ 
     "hideOnContentClick":true 
    }) 
    .removeAttr("target"); 
} 
+0

可悲的是,似乎沒有工作。問題在於它看起來非常隨意,因爲它「有時」會與firefox一起使用。 – 2010-12-02 13:11:51