1

在IE6和IE5.5中,我在頁面中看到了一個非常有趣的行爲。我有一個腳本(如果你知道的話可以選擇超級腳本),這樣可以在處理IE6和IE5.5時使PNG恢復業務。在執行此過程中,我想將背景更改爲使用資源管理器Alpha過濾器(如果啓用了Javascript,請使用過濾器,否則堅持爲純白色)。Javascript if if拒絕從外部腳本正確加載IE6 IE5.5

我通過這樣做:

if(document.getElementById('transparency') != null) 
      document.getElementById('transparency').style.filter= "alpha(opacity=60)"; 

...透明度問題的對象的ID。

把這個放在HTML頁面的末尾(或者'透明'被啓動後的任何地方)導致腳本工作。將它放在外部腳本的最後(延遲)會導致過濾器不被應用。

但是,當我刪除if語句,並告訴瀏覽器使用它的過濾器的作品(但只有少數頁面已獲得'透明度'ID)。

我試圖通過使用警告框不同地應用if語句,並嘗試使用!= null== null,我什麼都沒有。

這讓我很好奇,所以我測試了這一點:

var tt = 5; 
if(tt == 5)document.getElementById('transparency').style.filter= "alpha(opacity=60)"; 

與錯誤屏幕說

TT給了一個更奇怪的結果是不確定的

所有這一切在IE 7及以上版本中運行完美...

我意識到這真的是兩個不同的問題,但仍然... 任何人都可以給我一個線索,瞭解發生了什麼?

回答

1

這是行不通的?

var t = document.getElementById('transparency'); 
if (t && t.style) t.style.filter="alpha(opacity=60)"; 

這個怎麼樣?

try { 
    document.getElementById('transparency').style.filter= "alpha(opacity=60)"; 
} catch (e) { } 
+0

@no謝謝!!!工作完美,但我仍然很好奇,爲什麼和如何?你願意給我一個簡短的解釋嗎? :) 謝謝!! – 2010-09-07 20:29:12

+0

@no是兩個都很好..再次感謝!真的很想聽聽爲什麼雖然......不能真正做到這一點:( – 2010-09-07 20:39:16

+0

我很想解釋它,但我真的不知道爲什麼他們工作...或者,我應該說,我不'我知道爲什麼你發佈的代碼失敗了,我只是按照我平常寫的方式重寫了你的代碼,希望(並且有些期待)它會起作用。如果其他人能夠聽到解釋,我也會很感興趣給一個 – 2010-09-07 21:47:42