我需要一種方法來檢測瀏覽器是Safari 5還是更高版本 - 但JavaScript不應該依賴useragent,因爲它可以被覆蓋!有任何想法嗎?如何使用Javascript檢測瀏覽器是否爲Safari 5+?
1
A
回答
1
+0
我需要的東西不依賴於用戶代理,因爲這可以由最終用戶修改 – GeorgeU
0
不可能在不接受用戶代理可以由最終用戶和/或瀏覽器本身修改的情況下可靠地檢測瀏覽器。
如點1的結果是幾乎總是最好使用功能的支持檢測(例如,諸如與Modernizr)。
由於有是倍當需要特異性檢測一個瀏覽器,諸如禁用或啓用被誤報/不可檢測的特定能力,例如文件拖放在Safari 5
作爲一個例子,以下代碼提供了一個函數isFileDragAndDropSupported()
這使得使用isSafari5()
函數來返回文件拖動並且被支撐掉落在Safari 5不限定即使window.FileReader
在Safari 5中。
function isSafari5() {
return !!navigator.userAgent.match(' Safari/') && !navigator.userAgent.match(' Chrom') && !!navigator.userAgent.match(' Version/5.');
};
function isFileAPIEnabled() {
return !!window.FileReader;
};
function isFileDragAndDropSupported() {
var isiOS = !!navigator.userAgent.match('iPhone OS') || !!navigator.userAgent.match('iPad');
return (Modernizr.draganddrop && !isiOS && (isFileAPIEnabled() || isSafari5()));
};
注意:Modernizr僅用於isFileDragAndDropSupported()函數。 isSafari5()函數將獨立工作。
相關問題
- 1. 如何使用JavaScript檢測瀏覽器是否爲android webview?
- 2. 使用Javascript檢測Safari 5
- 3. 如何使用jQuery檢測瀏覽器是否爲Chrome?
- 4. 如何檢測瀏覽器是否支持webkit瀏覽器?
- 5. 如何檢查瀏覽器是否爲OSX Snow Leopard Safari 5.0
- 6. 使用javascript檢測瀏覽器用戶
- 7. 檢測用戶瀏覽器是否關閉瀏覽器
- 8. 如何檢測Flash Player是否在使用JavaScript的瀏覽器中被禁用?
- 9. 使用javascript檢測瀏覽器視口
- 10. Safari瀏覽器未檢測到插件5
- 11. 通過JS for Safari 5瀏覽器檢測
- 12. 如何在JavaScript中檢測瀏覽器?
- 13. JavaScript瀏覽器檢測?
- 14. 如何檢測事件是否爲瀏覽器事件
- 15. 如何檢測我的瀏覽器是否爲Firefox?
- 16. 檢測瀏覽器是否支持jQueryMobile
- 17. JavaScript可以檢測用戶的瀏覽器是否支持gzip?
- 18. Safari瀏覽器的Javascript parent.frames.length
- 19. 檢查瀏覽器是否理解JavaScript
- 20. .htaccess是否可以檢測瀏覽器是否啓用或禁用javascript?
- 21. 如何檢查瀏覽器的JavaScript是否啓用
- 22. 如何檢測瀏覽器是否遇到JavaScript錯誤...在JavaScript中?
- 23. 使用Javascript檢測瀏覽器是否支持Web Open Font Format(Woff)或不是
- 24. 如何使用瀏覽器檢測cookie和javascript
- 25. 如何在Facebook中使用javascript檢測瀏覽器
- 26. 如何使用javascript在瀏覽器中檢測手機事件?
- 27. 如何使用javascript檢測瀏覽器大小?
- 28. 如何測試瀏覽器是否接受JavaScript的cookies?
- 29. 如何檢測瀏覽器是否正在加載新頁面
- 30. 在perl中檢測瀏覽器,如何檢查瀏覽器是否爲perl中的Internet Explorer(IE)
爲什麼你需要準備*非常罕見的情況下,用戶代理被欺騙?它有理由認爲有人在瀏覽器中執行此操作時,無法期望網站能夠正常工作。可能有一種方法可以使用功能檢測來執行此操作,但用戶代理字符串是檢測瀏覽器版本的最常用方法。 –
與測試瀏覽器版本相比,檢測您感興趣的特定功能要好得多。你真的想要解決什麼問題? – jfriend00
我有一個腳本在pre safari 5中不起作用,所以試圖檢查一個功能。在Websocket上是依靠...但想知道是否有人寫了更好的東西 – GeorgeU