2011-09-14 85 views
9

瀏覽器之間有很多DOM/CSS不一致。但是瀏覽器之間有多少核心的JS差異?最近絆倒我的是,在Firefox中,setTimeout回調函數傳遞了一個額外的參數(https://developer.mozilla.org/en/window.setTimeout)。另外,既然瀏覽器正在實現新的功能(例如Array.map),如果你正在嘗試編寫必須適用於所有瀏覽器的代碼(甚至是後面的代碼),它可能會感到困惑,無法知道你可以/不能使用哪些東西到IE6)。JS跨瀏覽器不一致/差異

是否有一個網站,乾淨地組織這些類型的差異?

+0

jquery的目的之一是彌合瀏覽器之間的差異,並給程序員一個獨立於瀏覽器的API。這不是一個答案,而是一個很好的解決方法。 此外,請參閱此處以獲取(一些)區別列表:http://stackoverflow.com/questions/703993/javascript-incompatibilities-inconsistencies –

+2

@Eran,jQuery解決了DOM/CSS不一致問題*遠遠超出了不一致的語言*本身*。 –

+0

如果您擔心新功能,Google會提供「es5 shim」這個詞。 – Incognito

回答

5

我發現QuirksModeWebDevout有關於CSS和DOM怪癖的最佳表格。你可以用jQuery來彌補這些不兼容性。 Paul Irish也有this great list,其中包括幾乎任何你可能需要的polyfill,包括Array.map等ES5方法。

1

嗯,我要去開闢一個CW:

+0

有很多東西,比如很多數組方法,它們會在很多瀏覽器中出現。 –

+0

http://blog.stackoverflow.com/2011/08/the-future-of-community-wiki/ – Incognito

1

似乎沒有任何東西可以清楚地概括所有這些問題(實際上非​​常令人驚訝)。如果你使用jQuery,有一個很好的browser compatibility doc section概述支持的瀏覽器和已知問題。我只是在處理問題時(因爲無論如何您都應該在所有情況下進行瀏覽器測試),並且如果您想確保編碼正確或者遇到問題並需要了解修補程序,則可以記錄它們。當您快速搜索特定主題時,很容易發現問題。