2010-04-13 52 views
3

我想刷新頁面上的圖像,但沒有發生。我有一個圖像頁面,我需要根據需要更新這些圖像。要更新圖片,我上傳圖片在一個燈箱上,然後關閉燈箱。頁面上的圖像應該自行更新。現在,我試了$('#imageid')。attr('src',newimage)。我想在這裏特別提及舊圖像和新圖像的名稱是相同的。我覺得這是問題所在。如果我硬編碼任何其他圖像,它會在燈箱關閉後立即出現。但是,當我嘗試通過爲'src'屬性放置相同的圖像名稱來刷新圖像時,則沒有任何反應。jQuery - 使用attr('src',newimage)刷新同名圖像的問題

有人可以幫助我解決這個問題,並顯示更新的圖像。

謝謝。

編輯:它可能是緩存?

+0

發佈一些代碼,以便我們可以看到你在做什麼,請。 – dnagirl 2010-04-13 16:18:01

+0

該代碼有點令人困惑,因爲我將它與疊加結合在一起。儘管如此,這裏是總結版本: 新AjaxUpload( 'upload_button' 的onComplete:功能(文件,響應){ VAR newimage =響應; $( '#DIVID')ATTR( 'src' 中,newimage); }); – Blueboye 2010-04-13 16:44:43

回答

2

如果src是「foo.png」,並且您將src設置爲「foo.png」,我認爲該作業可能會被瀏覽器優化爲無操作。你有沒有試過將src設置爲「」,然後將其設置爲名稱?這應該註冊爲一個改變。

+0

是的,我已經嘗試過了,但這並沒有奏效。我將src設置爲空白,然後將其設置回圖像。它將src設置爲空白,但是當它將src設置爲圖像時,它會加載舊圖像。 – Blueboye 2010-04-13 16:41:17

+0

@Blueboye:嗯,值得一試...... – 2010-04-13 16:51:41

7

可能有更好的解決方案,但你可以只是拋出一個參數來強制新的圖像加載。

即:將src設置爲newImage+"?"+(new Date()).getTime()

+0

好點,如果剛剛清理'src'不行。 – 2010-04-13 16:30:55

+0

是的,這是我作爲一個工作,但我不知道這只是一個解決方法或唯一的解決方案。我希望更清晰和合乎邏輯的東西,除非這是讓瀏覽器刷新圖像的唯一方法。 – Blueboye 2010-04-13 16:40:22

+0

您可能想要檢入jQuery源代碼。當屬性的值相同時,它可能會進行優化。這就是說,我不確定瀏覽器的行爲應該如果你「重新設置」到相同的圖像。如果我是一名瀏覽器開發人員,那對我來說就不明確了。你總是可以創建一個函數來抽象出「新的Date()」位。 – 2010-04-13 16:46:52

0

此方法是有點複雜的,但僅在圖像源的名稱不能被改變的情況下是有用的,但在圖像對buttonclick被刷新() 。在瀏覽器中調用涉及圖像處理的代碼時,這很有用。

第1步:創建一個容器,例如div。
第2步:將標籤保留在另一個html文件中。
第3步:在容器中顯示包含圖像的iframe。

讓容器的id是「#image」和圖像的ID是「#img」和iframe的ID是「#cont」

然後做你想要塊內的以下刷新具有相同名稱的圖像。

$('#image').remove(); 
$('#cont').remove(); 
$('#img').append(' <iframe src="add.html" id="cont"></iframe> '); 

下面是代碼通常插入按鈕點擊事件中改變或重新加載圖像,具有相同的名稱是具體的INT他的情況

<div id="img"> 
 
<img id="image" src="uploads/initial_image.jpg" > 
 
</div>

下面是帶有可刷新Iframe的HTML。

<img src="effects/intermediate.jpg" id="image">

該段將確保頁面上顯示的初始圖像被刪除,新的iframe其中將按鈕點擊刷新到位。