2010-11-10 55 views
0

親愛的,我有以下腳本這裏(不要怪我,我不知道的JavaScript在所有)原型IE,火狐,Chrome差異

$$('#status').each(function(item) { 

var state = item.innerHTML 

if (state == "ON_GOING"){ 
    item.replace('<img src="layout/images/ongo.png"/>'); 
} 
if (state == "PAUSED"){ 
    item.replace('<img src="layout/images/pause.png"/>'); 
} 
}); 

其存儲在的底部文件。我也試着讓它'命名',並從'body'標籤的'onload'參數以及'window.onload ='語句中調用。 但它只能在firefox中正確顯示,而不能在IE或Chrome中顯示。 在Prototype文檔中說它是爲所有這些瀏覽器設計的,但是我仍然遇到這個問題,能否告訴我這段代碼有什麼問題,我應該如何編寫它以使其工作(更新'status'id在頁面加載後在html中)。

所以基本上我想用圖像替換塊中的初始文本,但它沒有發生。

在此先感謝。

+0

你不是在說實際問題是什麼? – 2010-11-10 11:11:20

+0

問題是,相同的代碼在Firefox,IE7和Chrome中不顯示相同的結果 – 2010-11-10 12:02:01

回答

2

對於字符串周圍的空白可能存在瀏覽器差異。嘗試剝離返回的HTML:

item.innerHTML.replace(/^\s*(.*?)\s*$/,'$1') 

更新:

你正在尋找此選擇:$$('#status')這意味着你正在尋找一個ID status多個對象。我認爲這不應該起作用。 Dom Id的意思是獨一無二的。我認爲你應該使用一個CSS類來代替,並將選擇器更改爲$$('.status')

+0

我已經用您的字符串更新了腳本,並用.update()函數替換了.replace()...現在可以用於Firefox和Chrome,但IE7仍然顯示初始文本,而不是替換圖像。 – 2010-11-10 12:03:11

+0

更新...似乎剝離空白不起作用,但使用update()而不是replace()使Chrome&FF正確顯示內容 – 2010-11-10 12:10:16

+0

好的,這裏有一個不同的想法,請參閱我的更新 – 2010-11-10 12:39:10