有没有办法检测浏览器是否具有SVG功能服务器端?我知道如何在客户端上执行此操作,但我想在浏览器上检测到它。
答案 0 :(得分:3)
众所周知,服务器端浏览器检测或功能检测容易出错。
用户代理字符串是用户代理字符串在服务器上唯一可见的用户代理字符串。
不幸的是,这完全不可靠,因为它可能被客户欺骗。出于隐私原因,它还经常被各种防火墙和安全产品消除,一些代理也会对其进行修改或删除。
简而言之,没有可靠的方法从服务器检测浏览器。
我有两条建议:
1)使用AJAX方法。正常检测Javascript中的功能(使用Modernizr或您最喜欢的其他技术),然后将该检测结果发送回服务器。如果用户真的想要它,它仍然可以被拦截和欺骗,但不太可能,并且肯定会解决我用防火墙和代理所描述的问题。
2)当唯一不支持它的浏览器是IE8(及更低版本)时,为什么要关心SVG支持? IE支持VML,并且可以使用任意数量的Javascript工具将SVG转换为VML,以便使用SVG的应用程序可以在所有浏览器中运行。我最喜欢的是Raphael,但拉斐尔是一个用于绘制图形的库;既然你已经有了SVG,你可能会发现一个简单的转换库更有用。这样的事情可能是:http://code.google.com/p/svg2vml/或者:http://code.google.com/p/svgweb/
希望有所帮助。