使用Modernizr来检测IE的正确方法?

史蒂夫

我想使用Modernizr JS库检测某些浏览器属性,以确定要显示或不显示哪些内容。

我有一个名为Pano2VR的应用程序,它可以同时输出HTML5和SWF。我需要用于iOS设备用户的HTML5。

但是,IE根本不呈现此“ HTML5”输出。看来他们的输出使用CSS3 3D转换和WebGL,IE9中显然不支持一种或多种。

因此,对于那些用户,我需要显示Flash版本。我打算使用IFRAME,并通过Modernizr脚本或document传递SRC。根据浏览器写出正确的IFRAME代码。

所有这些导致我如何使用Modernizr来仅检测IE或不检测IE?还是检测CSS 3d转换?

还是有其他方法可以做到这一点?

以太曼

我同意我们应该测试功能,但是很难找到一个简单的答案:“现代浏览器支持哪些功能,而旧浏览器不支持?”

因此,我启动了许多浏览器,并直接检查了Modernizer。我添加了一些我绝对需要的功能,然后添加了“ inputtypes.color”,因为它似乎涵盖了我关心的所有主要浏览器:Chrome,Firefox,Opera,Edge ...和NOT IE11。现在,我可以轻轻建议用户使用Chrome / Opera / Firefox / Edge会更好。

这就是我使用的-您可以编辑事物列表以测试您的特定情况。如果缺少任何功能,则返回false。

/**
 * Check browser capabilities.
 */
public CheckBrowser(): boolean
{
    let tests = ["csstransforms3d", "canvas", "flexbox", "webgl", "inputtypes.color"];

    // Lets see what each browser can do and compare...
    //console.log("Modernizr", Modernizr);

    for (let i = 0; i < tests.length; i++)
    {
        // if you don't test for nested properties then you can just use
        // "if (!Modernizr[tests[i]])" instead
        if (!ObjectUtils.GetProperty(Modernizr, tests[i]))
        {
            console.error("Browser Capability missing: " + tests[i]);
            return false;
        }
    }

    return true;
}

这是“ inputtypes.color”所需的GetProperty方法。

/**
 * Get a property value from the target object specified by name.
 * 
 * The property name may be a nested property, e.g. "Contact.Address.Code".
 * 
 * Returns undefined if a property is undefined (an existing property could be null).
 * If the property exists and has the value undefined then good luck with that.
 */
public static GetProperty(target: any, propertyName: string): any
{
    if (!(target && propertyName))
    {
        return undefined;
    }

    var o = target;

    propertyName = propertyName.replace(/\[(\w+)\]/g, ".$1");
    propertyName = propertyName.replace(/^\./, "");

    var a = propertyName.split(".");

    while (a.length)
    {
        var n = a.shift();

        if (n in o)
        {
            o = o[n];

            if (o == null)
            {
                return undefined;
            }
        }
        else
        {
            return undefined;
        }
    }

    return o;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Modernizr中使用流星的正确方法

来自分类Dev

使用Modernizr检测Flash

来自分类Dev

使用modernizr检测iOS设备

来自分类Dev

使用CSS功能/功能检测来检测IE11

来自分类Dev

正确的方法来检测php中的mime类型

来自分类Dev

使用Modernizr检测拖放(不是文件拖放)

来自分类Dev

如何使用Modernizr进行用户带宽检测?

来自分类Dev

使用间谍来检测方法调用

来自分类Dev

使用OpenCV进行特征检测的正确方法

来自分类Dev

C#属性来检测未使用的方法

来自分类Dev

使用发布请求的结果来更新网页的正确方法

来自分类Javascript

检测WebGL支持的正确方法?

来自分类Dev

Modernizr:如何检测FullScreen API

来自分类Dev

如何使用Modernizr使HTML5模板适应IE5,IE6等?

来自分类Dev

有没有正确/推荐的方法来检测我在手机上运行的UWP应用?

来自分类Linux

如何正确使用SO_KEEPALIVE选项来检测另一端的客户端已关闭?

来自分类Javascript

如果您不使用功能检测,是否真的需要Modernizr?

来自分类Dev

是否可以从Modernizr检查我的代码库正在使用哪些功能检测?

来自分类Dev

检测视口单位(使用modernizr或普通js)并提供适当的样式表

来自分类Dev

如何正确检测IE11或更高版本?

来自分类Dev

在 python/OpenCV 中使用图像文件作为参考来检测 GUI 按钮的最佳方法

来自分类Dev

ReactJS:我应该使用哪种生命周期方法来检测道具的变化?

来自分类Dev

如何使用Microsoft Shims来检测方法调用是否为DAMP

来自分类Dev

有什么方法可以使用chrome扩展程序来检测javascript后消息吗?

来自分类Dev

正确使用%in%的正确方法

来自分类Javascript

使用Observable来检测变量的变化

来自分类Dev

adblocker使用哪些条件来检测广告

来自分类Dev

如何使用BehaviorSubject来检测变化

来自分类Dev

如何在头部使用Modernizr来有条件地加载JS-TypeError产生

Related 相关文章

  1. 1

    在Modernizr中使用流星的正确方法

  2. 2

    使用Modernizr检测Flash

  3. 3

    使用modernizr检测iOS设备

  4. 4

    使用CSS功能/功能检测来检测IE11

  5. 5

    正确的方法来检测php中的mime类型

  6. 6

    使用Modernizr检测拖放(不是文件拖放)

  7. 7

    如何使用Modernizr进行用户带宽检测?

  8. 8

    使用间谍来检测方法调用

  9. 9

    使用OpenCV进行特征检测的正确方法

  10. 10

    C#属性来检测未使用的方法

  11. 11

    使用发布请求的结果来更新网页的正确方法

  12. 12

    检测WebGL支持的正确方法?

  13. 13

    Modernizr:如何检测FullScreen API

  14. 14

    如何使用Modernizr使HTML5模板适应IE5,IE6等?

  15. 15

    有没有正确/推荐的方法来检测我在手机上运行的UWP应用?

  16. 16

    如何正确使用SO_KEEPALIVE选项来检测另一端的客户端已关闭?

  17. 17

    如果您不使用功能检测,是否真的需要Modernizr?

  18. 18

    是否可以从Modernizr检查我的代码库正在使用哪些功能检测?

  19. 19

    检测视口单位(使用modernizr或普通js)并提供适当的样式表

  20. 20

    如何正确检测IE11或更高版本?

  21. 21

    在 python/OpenCV 中使用图像文件作为参考来检测 GUI 按钮的最佳方法

  22. 22

    ReactJS:我应该使用哪种生命周期方法来检测道具的变化?

  23. 23

    如何使用Microsoft Shims来检测方法调用是否为DAMP

  24. 24

    有什么方法可以使用chrome扩展程序来检测javascript后消息吗?

  25. 25

    正确使用%in%的正确方法

  26. 26

    使用Observable来检测变量的变化

  27. 27

    adblocker使用哪些条件来检测广告

  28. 28

    如何使用BehaviorSubject来检测变化

  29. 29

    如何在头部使用Modernizr来有条件地加载JS-TypeError产生

热门标签

归档