有沒有辦法檢測瀏覽器是否具有SVG功能服務器端?我知道如何在客戶端上做到這一點,但我想在瀏覽器上檢測它。ASP.NET檢測SVG功能服務器端
2
A
回答
3
服務器端瀏覽器檢測或功能檢測是出了名的錯誤。
在服務器上用戶擁有的瀏覽器的唯一可見性是用戶代理字符串。
不幸的是,這是完全不可靠的,因爲它可以被客戶欺騙。由於各種防火牆和安全產品的原因,它也經常被隱藏起來,一些代理也會修改或刪除它。
簡而言之,沒有可靠的方法從服務器檢測瀏覽器。
我對你有兩個建議:
1)使用AJAX方法。正常情況下(使用Modernizr或您最喜歡的其他技術)在Javascript中檢測功能,然後將檢測結果發送回服務器。如果用戶真的想要這樣做,它仍然可以被攔截和欺騙,但是不太可能,並且肯定會解決我用防火牆和代理描述的問題。
2)爲什麼關心SVG的支持,當唯一不支持它的瀏覽器是IE8(或更低)? IE支持VML,而且有許多Javascript工具可用於將SVG轉換爲VML,因此使用SVG的應用程序可以在所有瀏覽器中運行。我最喜歡的是Raphael,但拉斐爾是繪製圖形的庫;既然你已經有了SVG,你可能會發現一個簡單的轉換庫更有用。像這樣的東西,或許:http://code.google.com/p/svg2vml/或者這個:http://code.google.com/p/svgweb/
希望有幫助。
相關問題
- 1. 在服務器端測試Flash功能
- 2. 客戶端 - 服務器功能測試
- 3. 功能檢測支持svg過濾器
- 4. 檢測Silverlight服務器端
- 5. 如何從客戶端調用服務器端的功能 - asp.net
- 6. 在ASP.NET中檢測Web服務性能
- 7. SVG中的foreignObject功能檢測
- 8. 對象檢測 - 服務器端 - 技術
- 9. 服務器端設備檢測
- 10. 檢測服務器端啓用的Javascript
- 11. Perl服務器端跨域檢測
- 12. 檢測服務器端的TimeoutException WCF
- 13. htaccess的服務器端WEBP檢測
- 14. 檢測硬件更改服務器端
- 15. 檢測瀏覽器/版本與JavaScript與檢測服務器端?
- 16. asp.net web表單C# - 服務器端功能
- 17. 服務器端功能/ JS SDK的
- 18. 綁定服務器端功能
- 19. 調用JavaScript功能服務器端
- 20. 調用服務器端功能
- 21. boost :: asio服務器 - 檢測服務器端口失敗
- 22. Symfony2功能測試客戶端強制服務器參數SERVER_NAME
- 23. 服務器端性能測試
- 24. 你能檢測到服務器端的HTML 5 History API嗎?
- 25. 功能測試服務
- 26. 瀏覽器檢測與功能檢測
- 27. SVG到服務器端的JSON?
- 28. GetElementByID在服務器端,asp.net?
- 29. 服務器端驗證asp.net
- 30. asp.net下拉服務器端
這是因爲我使用的圖表庫無法對SVG和VML使用相同的格式代碼。所以如果我在一個上看起來不錯,那麼看起來就不好。所以爲了解決這個問題,我想檢測他們是否有SVG,然後使用備用樣式。我無法使用Ajax,因爲我需要在第一頁渲染時執行操作。看起來我必須檢測瀏覽器。 – KingOfHypocrites 2011-06-02 18:25:02
@King:我想我會建議使用更好的製圖庫,如Raphael(及其姐妹製圖庫g.Raphael),它使SVG/VML翻譯變得透明。但是聽起來你已經在一段不同的路上走了一段距離,所以便宜的答案只是檢測IE8並降低,並希望你的用戶爲你提供有效的UA。 – Spudley 2011-06-03 07:51:44
儘管如果他們想要的話,幾個Android設備也不支持SVG(他們選擇不用它們來節省內存使用)。所以說普通的瀏覽器都支持SVG或VML是不公平的。有時你必須回退到服務器渲染的PNG圖像。 – 2011-12-24 17:23:04