2011-10-18 27 views
2

我有一個應用程序,我已經在Safari 5,IE 9,FF6和Chrome 14中進行了全面測試。我不想阻止或排除任何瀏覽器的體驗。但是我想警告/告知用戶在另一個瀏覽器中可能會有更好的體驗,如果他們選擇繼續,可能會有功能無法正常工作或損壞。將警告消息顯示給「未經測試」的瀏覽器的最佳方法是什麼?

我看過jQuery瀏覽器檢測,但它似乎有點古怪。我知道最好的解決方案是基於特徵檢測進行警告,但我們目前處於測試階段,並且我不完全確定哪些功能可以成功或失敗。比如網絡工作者,它知道網絡工作者不工作會打破我們的應用程序,但它在IE低版本中起作用。但是,Opera公司存在一個問題,即網絡工作者可用,但無法正常工作。

最終,我正在尋找一種簡單的方式來說瀏覽器X版本Y和以上不顯示警告,以及那些和顯示警告。

解決此問題的最佳方法是什麼?

+0

Opera和Web Workers有什麼問題?它是一般的瀏覽器的一個已知問題,或者是特定於您的網站的問題? – Spudley

+0

我依賴於一堆不同的圖書館,一個利用網絡工作者,它可以找到,但是其中一個物理圖書館在Opera中有問題。 – Hyper

+0

我發現了一個有用的jquery庫,它已經解析了用戶代理等。這可能是我的解決方案,但我想看看還有什麼。 – Hyper

回答

1

幾乎在任何情況下,瀏覽器檢測確實「有點古怪」。 jQuery路線可能和你將要獲得的一樣好,但是正如你所說的那樣,這並不好。

更好的解決方案通常是做特徵檢測,特別是在您描述網站依賴於特定功能的情況下。

最佳特徵檢測庫是Modernizr。根據瀏覽器是否支持給定的功能,這會給你一堆Javascript標誌,它們被設置爲true或false。它檢測對一大堆東西的支持,包括Web Workers。

+0

我其實只是偶然發現了這顆古老的寶石,可能是我的答案。 http://jquery.thewikies.com/browser/ Modernizr也是一個很好的解決方案,謝謝Spudley。 – Hyper

+0

我試圖避免功能檢測功能經常發生更改,而且我不是100%哪些功能無法正常工作。 – Hyper

+0

IME特徵檢測可以找出哪些API可用 - 但這與API聲稱支持它的所有瀏覽器一致工作不一樣 - 我只建議使用特徵檢測來突出顯示哪些API不可用,並確定任何用戶消息的視覺影響。 – symcbean

1

看看這個:http://www.w3schools.com/js/js_browser.asp

的使用javascript檢測用戶的瀏覽器 - 容易的方式。從那裏我只是使用switch語句或某些東西來顯示未經測試的瀏覽器的消息。如果你想要確切的瀏覽器版本,你必須從「navigator.userAgent」字段解析它。

+2

w3schools.com是[不是](http://w3fools.com/)通常被認爲是最好的資源,加上OP更多的是針對特徵檢測而不是用戶代理檢測(由於它可能被欺騙而不可靠)。 – BalusC

+0

雖然這會起作用,但我很好奇,看看有沒有比這種方法更好的方法,或者其他人已經採取的措施來解決這個問題。 – Hyper

+0

您還應該檢測支持的瀏覽器功能,例如'function supports_webworkers(){return !! window.Worker; }' – david

1

如果目標是完全驗證,則需要更具體的版本。請記住,某些瀏覽器升級不是100%向後兼容以前的版本。 (例如,查看IE9中的IE8模式與本機IE8渲染的不同之處)。您將不得不使用每個新的瀏覽器版本進行重新測試,並且遲早會有一個「使用瀏覽器版本進行完全測試X,沒有使用昨天發佈的版本X + 1進行測試「問題。如果用戶的體驗明顯降級,特徵檢測,優雅降級和非侵入式顯示給用戶的警告是更好的方式。

要直接回答你的問題,如果你必須實現你所要求的只是解析用戶代理。這可能是有用的,特別是注意一個瀏覽器,你知道不正確和警告,或作爲一個嚴重的內部網應用程序,它是非常挑剔的確切的瀏覽器版本它將運行的bandaid。對於您可以控制需求的新開發的應用程序,我不建議在瀏覽器版本上發出警告,因爲有更好的方法來執行此操作。

+0

雖然我試圖避免在互聯網上瀏覽器的整個問題。作爲Avid Opera用戶,我明白你在說什麼。 我試圖避免整個瀏覽器警告的情況,但我們正處於測試階段,只需要一個關於我們可能沒有讓瀏覽器100%工作的快速信息。 – Hyper

相關問題