2016-05-07 54 views
3

我正在使用載入更新圖像的彈出窗口的單張地圖。然而,圖像最終緩存。我想通過添加Date.now()來解決這個問題,但這隻會添加頁面加載時的日期,而不是彈出窗口時打開。緩存在單張標記彈出窗口中破壞

.bindPopup('<img src="image.jpg?'+ Date.now()+'" width="260" height="196" border="0"><br>Location One').addTo(map), 

我試圖把日期現在在一個單獨的功能...

function foo() { 
setInterval(Date.now(), 10000) 
} 

,並呼籲從彈出該功能:

.bindPopup('<img src="image.jpg?'+ foo() +'" width="260" height="196" border="0"><br>Location One').addTo(map), 

然而,僅僅加載: 「image.jpg的?未定義」。

如何獲取緩存清除時間戳更新?

(此刻我只是使用元刷新來更新整個頁面,這不是非常優雅,只是當你需要在地圖上的位置時重新加載頁面...)

回答

3

你可以綁定任意容器/空的內容彈出,而是監聽popupopen事件對相關地圖標記路徑

scope.on('popupopen', function(ev){ 
    var src = 'image.jpg?v=' + Date.now(); 
    ev.popup.setContent('<img src="'+ src +'"/>'); 
}); 
+0

我無法得到您的確切答案,正確的工作(這可能是我嘗試縮放它以使用數百個標記進行工作時發生的錯誤)。但是我已經使用了我不知道的popupopen函數。 所以我給了圖像一個ID和改編我在其他地方使用的一些jQuery: map.on('popupopen',function(e){('#popupimage')。attr('src' ,$('#popupimage')。attr('src')+'?'+ Date.now()) }); – Rob