2016-11-16 75 views
1

我有一個普遍的問題。我正在使用JavaScript編寫我的第一個程序,當我在處理它們時,我遇到了一些奇怪的「破碎瀏覽器」問題。如何處理損壞的瀏覽器?

在我的程序工作幾周內,我經常在不同的瀏覽器和計算機系統上測試項目。在做這件事時,我觀察到Firefox和Chrome在特定版本中的怪異行爲。在這兩種情況下,這兩個瀏覽器中的程序運行正常,然後突然間,我在一臺機器上遇到了Windows上Firefox的Firefox問題。經過一番調查後,我試圖更新瀏覽器,問題消失了。我在Linux上的Chrome上也有同樣的體驗。它工作得很好,然後我突然遇到了Chrome 48的問題。我在Mac和Windows上測試了這個程序,一切正常。然後我意識到這臺機器上的瀏覽器版本爲54.因此,我在Linux機器上更新到最新版本,問題消失了。

我的問題:這種事情是否發生在特定版本的瀏覽器中,如果是這樣的話,如果您正在處理更大的項目,該如何處理?

編輯:從下面的答案我看到我不清楚我的問題。這個問題並不是關於跨瀏覽器的兼容性,而更多的是關於爲什麼一個程序在chrome v47中工作,而不是在v48中,然後再在v54中工作。 Firefox和其他瀏覽器也一樣。

+0

新版本瀏覽器的支持,例如新的腳本方法,舊版瀏覽器不支持ECMAScript 6。如果您想支持舊版瀏覽器的用戶,則應確保這些瀏覽器可以運行代碼。 –

+0

問題消失並不一定意味着導致問題的原因也消失了。它仍然可能是你的代碼中只有某些瀏覽器版本或情況下暴露的錯誤,而不是瀏覽器導致程序失敗的錯誤。在不知道代碼的情況下以及它如何失敗的情況下,無法確定問題是您的代碼還是瀏覽器,以及如何處理這些問題。 –

回答

0

你必須閱讀關於跨瀏覽器兼容性。每個瀏覽器可能具有不同的特定功能的實現,甚至不具有。 對於IE8等較舊的瀏覽器,甚至更簡單的window.innerWidth 不起作用。

jQuery可能會幫助你。它的庫有效地爲很多情況提供了跨瀏覽器兼容性。 如果瀏覽器支持一些功能是使用Modernizr

您也可以手動像caniuse.com網站查詢支持測試的另一種方式 - 主要適用於CSS樣式也是js的