2013-10-21 57 views
0

我已經瀏覽過類似的線程,並嘗試了所有建議無效的東西。在頁面加載後強制重繪/重新繪製firefox中的DOM元素

我想要的頁面通過改變它的src屬性一旦我有一個新的位置加載之後更換的圖像。我想用本地圖像替換圖像。

直接通過img.src = urlString改變src屬性;或使用setAttribute()方法設置src,但不重新繪製加載頁面中的圖像。我用window.alert(img.src);檢查src屬性是否真的發生了變化。

我用下面的代碼片段從here強制重繪。

var n = document.createTextNode(' '); 
var disp = img.style.display; 
img.appendChild(n); 
img.style.display = 'none'; 

img.style.display = disp; 
n.parentNode.removeChild(n); 

似乎沒有任何工作。是因爲頁面已加載還是因爲我正在使用本地文件?

本地文件在%AppData%\ temp,這可能是一個權限問題嗎?瀏覽器控制檯不會引發任何錯誤。我不想刷新整個頁面,因爲有人可能在表單中輸入內容,並且他們將丟失數據。

任何輸入,將不勝感激。謝謝。

編輯:一點澄清。 我使用擴展在每個窗口中注入一個腳本。一旦一個窗口加載了一個頁面,我將這些圖像發送給另一個腳本進行處理,然後該腳本將一個事件返回到具有一個位置的窗口到一個新文件。一旦事件被捕獲,就會調用一個函數來改變特定圖像的src屬性。我檢查了所有內容,src被更改,但瀏覽器不顯示新圖像。

另一編輯: 似乎沒有權限問題,因爲我可以使用file:/// pathtofile/從地址欄訪問該文件。使用外部網址(例如http://),即使在網頁加載後,它也可以正常工作。我怎樣才能使它與當地的網址合作?

+0

如果將不會中斷您的文檔流程,你可以刪除舊的圖像(通過刪除它的DOM節點),並更換與新的一個。 – Zemljoradnik

+0

我無法確定。我不知道我得到了什麼網頁,所以我不知道會有什麼樣的損害。 –

回答

1

Firefox不會允許不受信任的網頁從file://的URI以任何方式加載數據。這包括從file:// URI加載圖像。

要知道爲什麼,考慮如果一個網頁做<img src="file:///dev/tty">在Linux或Mac,例如會發生什麼。在某些Windows版本存在類似的問題,如果你試圖從file:///c:/con和喜歡讀...

+0

謝謝你的回答。我會嘗試使用Web服務器來更改圖像。 –