【问题标题】:detect whether the browser supports famo.us检测浏览器是否支持famo.us
【发布时间】:2014-10-05 08:26:49
【问题描述】:

我想检测访问者浏览器是否能够运行 famo.us - 如果不能重定向它们。

我的第一个想法是 Modernizr 并检测浏览器是否能够进行 CSS 3D 转换,但我担心这可能过于严重,因为 famo.us 可能通过 shims 添加了一些向后兼容性。

我目前正在使用 WURFL 进行设备检测,但据我所知,这并不能提供足够的浏览器信息。

对此有什么想法吗?

【问题讨论】:

    标签: famo.us browser-detection browser-feature-detection


    【解决方案1】:

    famo.us 所依赖的突出特性是 CSS preserve-3d,这是进行 CSS 3D 转换的关键,也是 famo.us 正确渲染所依赖的。

    您可以使用 Modernizr 的 cutting edge 3.0 测试版专门测试此支持。我建议在阅读用户代理时使用它,因为你总是会以某种方式得到奇怪的误报。 无法使用当前的 2.x 版本,因为testAllProps 不支持两个参数语法。

    if(Modernizr.testAllProps('transformStyle', 'preserve-3d')){
    
        //true
        // run famo.us code!
    }
    else
    {
        //false
        // famo.us 3d transforms won't work right, so lets compromise
    }
    

    在 Modernizr 团队部分,我们付出了相当大的努力来跟踪这个问题,所以如果您发现任何问题,请让他们知道 here

    【讨论】:

    • 太棒了 - 试试看吧。这正是我想知道的
    • 我已经启动并运行了:ie10 和 ie11 确实可以在我的应用程序中正常工作 - 但上面的modernizr 代码拒绝这些浏览器
    • 虽然我不需要这些信息但很高兴知道。我将 +ing 问题和答案。 @amcc 我听说过,二手的,即可能会出现故障,需要非常仔细地测试边缘情况。
    • @amcc 拒绝 IE11 的测试是正确的 modern.ie 的说法,如果你没有真正接触 3D,很多东西在 IE 上都会渲染得很好。但是 IE 在处理背面和其他事情上失败了。您可能希望首先测试preserve-3d,然后进行一般的3d 转换,看看您是否可以在IE 中以残缺的形式运行。但是只有 IE 还没有实现preserve-3d
    • 是否有更简单的测试可以揭示 famo.us 可以做的更简单的方面。你说得对,我在 IE 中没有做太多 3d 的东西。我还可以在 IE 中看到一些故障。但是版本 10 和 11 在其他方面工作得很好。考虑到不需要完整 3d 体验的大量 famo.us 网站/应用程序,IE 可以做的事情很有希望。
    【解决方案2】:

    【讨论】:

    • 感谢您的帮助 - 我之前看过其他帖子,我想知道我们是否可以简单地寻找一个浏览器功能来表明 famo.us 是否可以工作,做非常旧版本的 firefox, safari 和 chrome 真的有用吗(它们已经存在了一段时间)?现在也将排除所有 IE。
    猜你喜欢
    • 2011-12-12
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 2020-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多