【问题标题】:How to check if browser supports svg with javascript? [duplicate]如何检查浏览器是否支持带有 javascript 的 svg? [复制]
【发布时间】:2015-02-18 12:12:50
【问题描述】:

我在我的网站上使用 svg 动画,但它也必须在不支持 svg 的旧浏览器中运行。我可以通过重定向到静态页面来解决这个问题。

但是否有可能在 javascript 的帮助下检测浏览器是否支持 svg?

任何帮助将不胜感激。

【问题讨论】:

标签: javascript browser svg cross-browser


【解决方案1】:

不久前,当我构建 bolster 扩充库的 $.supports() 部分时,我自己对此进行了大量搜索。这是我决定的:

canSvg = !!(document.createElementNS && document.createElementNS('http://www.w3.org/2000/svg','svg').createSVGRect);

在 IE8+ 上测试,运行良好。

编辑

@SinaSadrzadeh 提出了一个很好的观点,Modernizr 是一个很棒的资源。如果您还没有,我建议您将 Modernizr 用于您的项目,但特别是如果 SVG 不是唯一要测试的东西。如果 SVG 是您唯一要测试的东西,则不需要引入整个库,但它不允许很多可扩展性。

【讨论】:

  • 那是写的,但你可以在这里自定义你想在modernizr包中的内容modernizr download builder
  • @SinaSadrzadeh - 但同样,如果他只需要测试单个项目(这是一种不太可能的情况,但仍然如此)......向我解释一个单独的文件如何比我提供的单行 JS。
  • 没关系,伙计:),我同意你的看法。这只是modernizr的另一个方面。
  • @PlantTheIdea 一段时间后,这是最佳解决方案,它很短,易于使用并且可以满足预期。再次感谢!
  • @PlantTheIdea 同意。无需导入整个库来仅测试 SVG 支持
【解决方案2】:

您可以利用一个非常有用的库 modernizr

在包含它之后,只需编写如下内容:

if (!Modernizr.svg) {
  // svg fallback
}

【讨论】:

  • 我在回答中添加了一些措辞,因为 Modernizr 始终是一个不错的选择。不过,如果他只需要测试 SVG,那就用大锤敲钉子吧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-12
  • 2011-03-11
  • 2020-01-04
  • 2018-06-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多