【发布时间】:2011-11-02 17:37:34
【问题描述】:
昨天我在运行 opera 时遇到了我网站上的一些谷歌图表的问题。我收到错误“您的浏览器不支持图表”。今天它非常好,实际上似乎运行得更快了。
我想在我的 javascript 中有一个备份,这样如果它不支持我就只显示一个表格。
有没有这样的方法可以做到这一点,还是我需要检查传入的浏览器列表并自己弄清楚?
【问题讨论】:
标签: javascript html browser graph
昨天我在运行 opera 时遇到了我网站上的一些谷歌图表的问题。我收到错误“您的浏览器不支持图表”。今天它非常好,实际上似乎运行得更快了。
我想在我的 javascript 中有一个备份,这样如果它不支持我就只显示一个表格。
有没有这样的方法可以做到这一点,还是我需要检查传入的浏览器列表并自己弄清楚?
【问题讨论】:
标签: javascript html browser graph
来自http://code.google.com/intl/en/apis/chart/interactive/docs/:
图表使用 HTML5/SVG 技术呈现,以提供 跨浏览器兼容性(包括旧 IE 版本的 VML)和 可跨平台移植到 iPhone、iPad 和 Android。
他们显然在使用内联 SVG。 http://caniuse.com/#search=inline%20svg 在这里不是很有用,因为那是关于识别 SVG 内容的 HTML5 解析器,但是 Google 正在动态生成 SVG 内容。我认为以下代码 sn-p 正确测试了内联 SVG 支持:
var svgRoot = null;
if ("createElementNS" in document)
svgRoot = document.createElementNS("http://www.w3.org/2000/svg", "svg");
if (svgRoot && "width" in svgRoot)
alert("Inline SVG supported");
如果动态创建的 SVG 元素具有特定于 SVG 的属性,那么一切都应该没问题。您仍然必须假设通常支持 MSIE(通过 VML)。或者使用How do you detect support for VML or SVG in a browser 来检测VML 支持。这有望与 Google 正在执行的兼容性检查相匹配(减去您显然观察到的故障)。
【讨论】:
if (Modernizr.inlinesvg) { // supports inline svg }