2012-03-05 116 views
0

什麼在做:嘗試從iFrame調用Fancybox附加到父級而不是iFrame,同時解析一個URL以便與Fancybox'href'參數一起使用。jQuery + Fancybox HREF參數不刷新/緩存

問題:這是用於用戶圖片上傳的表格,第一次上傳會產生想要的結果; fancybox與圖像彈出。隨後的嘗試會導致Fancybox鏈接到第一個圖像,就好像在緩存它一樣。由於每次上傳都會覆蓋最後一張圖片,因此網址實際上並未發生變化,但圖像確實發生了變化。
刷新頁面將再次開始此循環。如果你右鍵點擊鏈接並在新窗口/標籤中打開,你會得到新的圖像,然後fancybox也將更新該圖像。

代碼:這是PHP輸出的代碼,一旦用戶成功上傳圖像 - 希望創建一個鏈接到該圖像。

echo "<p>" . '<a id="image-preview" href="/images/uploads/' . preg_replace("/[^A-Za-z0-9_]+/", "", $result[0]['Klarents_Model_Project']['project_name']) . '/' . 
         preg_replace("/[^A-Za-z0-9_]+/", "", $result[0]['Klarents_Model_Company']['company_company_name']) . '_' . 
         (($this->getRequest()->getParam('filename') !== "") ? 
          $this->getRequest()->getParam('filename') : $result[0]['Klarents_Model_Company']['company_id']) . 
         "." . $ext . '" onclick="event.preventDefault();parent.fbuPreview($(this).attr(\'href\'));">Image preview' . "</a></p>";` 

這可以在父頁面找到。

function fbuPreview(url){ 
    $.fancybox({ 
     'href' : url 
    }); 
} 


問候,

回答

3

你必須設置了一個param添加到圖像,如:

/images/uploads/something/customer/uploadedfilename.jpg?date=20120305122713 

這有一個不同的URL,並不會放棄的結果與以前的圖像。您無法通過Javascript清除緩存,但添加了當前的參數。將強制瀏覽器加載新圖像。

當前瀏覽器正在緩存IMG URL。如果它是相同的,他會一直讓它從緩存中直到刷新頁面。

我有這個問題幾次,唯一的解決辦法是添加一個參數。

+0

可愛!是的,這已經解決了這個問題 - 謝謝:) – mr12086 2012-03-05 11:34:19