2012-07-27 45 views
2

我在WPF頁面上有一個WebBrowser控件。加載到WebBrowser控件的HTML頁面顯示WPF應用程序的圖像。我有一個從WPF頁面到HTML頁面的JavaScript回調,告訴頁面圖像已經改變並重新加載圖像。我似乎無法找到任何方式告訴瀏覽器標籤中的底層文件已經改變。如何重新加載<img/>?

如何重新加載img?

我試着只是改變了src屬性,我也已經厭倦了這樣的事情:

  $("#img1").attr("src", ""); 
      $("#img2").attr("src", ""); 

      $("#img1").attr("src", image1); 
      $("#img2").attr("src", image2); 

第一次調用函數時顯示的圖像。當圖像被改變並且該功能被再次調用時,原始圖像仍然存在。

回答

6

將源設置爲隨機查詢部分。例如。 img.png?0001等

有了這個技巧,每次調用都有一個新的url,瀏覽器控件不會讓你感到困惑。

+6

我更喜歡使用當前時間戳 - 比隨機更可靠。 – 2012-07-27 13:52:35

+1

你是對的,這是一個更好的選擇:-) – rekire 2012-07-27 13:54:21

+0

工程。謝謝您的幫助。 – tzerb 2012-07-27 14:38:58

3

傳遞一個唯一的查詢字符串參數將強制圖像重新加載。許多網站和圖書館(example)使用這一技術來確保顯示的資源的新副本:

$("#img1").attr("src", image1 + '?_=' + new Date().getTime()); 
$("#img2").attr("src", image2 + '?_=' + new Date().getTime()); 

你需要添加額外的邏輯,如果你的image1image2鏈接已經有查詢字符串。

+0

'image1 = image1.substring(0,image1.indexOf('?'))'應該這樣做。 – Blazemonger 2012-07-27 14:01:14

+0

@Blazemonger我個人更喜歡用'indexOf('?')'作爲條件的第三語句,但它們都完成了同樣的事情。 – jbabey 2012-07-27 14:05:27