.net - ASP.NET 检测 SVG 功能服务器端

标签 .net asp.net svg

有没有办法检测浏览器是否具有服务器端 SVG 功能?我知道如何在客户端上执行此操作,但我想在浏览器上检测它。

最佳答案

服务器端浏览器检测或功能检测非常容易出错。

您在服务器上唯一能看到用户使用的浏览器的是用户代理字符串。

不幸的是,这是完全不可靠的,因为它可能被客户端欺骗。出于隐私原因,它也经常被各种防火墙和安全产品删除,一些代理也会修改或删除它。

简而言之,没有可靠的方法从服务器检测浏览器。

我有两个建议给你:

1) 使用 AJAX 方法。正常检测 Javascript 中的功能(使用 Modernizr 或您最喜欢的其他技术),然后将该检测结果发送回服务器。如果用户确实愿意,它仍然可以被拦截和欺骗,但可能性较小,并且肯定会绕过我所描述的防火墙和代理问题。

2) 当唯一不支持 SVG 的常用浏览器是 IE8(及更低版本)时,为什么还要关心 SVG 支持呢?相反,IE 支持 VML,并且有许多 Javascript 工具可用于将 SVG 转换为 VML,以便使用 SVG 的应用程序可以在所有浏览器中运行。我最喜欢的是Raphael ,但Raphael是一个用于绘制图形的库;既然您已经有了 SVG,您可能会发现一个简单的转换库更有用。也许是这样的:http://code.google.com/p/svg2vml/或者这个:http://code.google.com/p/svgweb/

希望有帮助。

关于.net - ASP.NET 检测 SVG 功能服务器端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6188266/

相关文章:

javascript - 从周围的 HTML 调用 SVG 内部的 JavaScript 函数

javascript - 在 Canvas 中定位对象的算法

c# - ActiveMQ NMS C# 对象消息使用什么序列化方法?

c# - 如何在 TableLayoutPanel 中对齐文本框和标签?

c# - 垃圾邮件中发送的邮件

ASP.Net SQL 连接字符串配置

javascript - SVG路径半圆中的圆 Angular

.net - 解释Visual Studio 2005线程窗口

c# - 如何定义接受任何生成 IEnumerable<T> 的任务的函数?

c# - asp.net母版页执行的顺序