编程语言
首页 > 编程语言> > javascript – Modernizr测试

javascript – Modernizr测试

作者:互联网

为什么这会发出警报,是和否?

Modernizr.load([
    {
        test: Modernizr.cssgradients,
        yep: alert('Supports it!'),
        nope: alert('Oh, damn! This browser sucks!')
    }
]);

我在OS X上使用最新的chrome.

解决方法:

因为你直接在那里调用alert(),所以alert()(总是未定义)的结果被分配给yep和nope属性.您需要在函数中包装alert()并指定该函数:

Modernizr.load([
    {
        test: Modernizr.cssgradients,
        yep: function () { alert('Supports it!') },
        nope: function () { alert('Oh, damn! This browser sucks!') }
    }
]);

这仍然无效,因为它不是yepnope的工作方式. yep和nope应该是加载的JS文件的路径:

Modernizr.load([
    {
        test: Modernizr.cssgradients,
        nope: 'cssgradients-shim.js'  //-> load a JS file to draw your gradients
    }
]);

正如您自己发现的那样,如果您不想使用集成的yepnope.js,您可以使用传统方式使用Modernizr:

if (!Modernizr.cssgradients) {
    alert('Oh, damn! This browser sucks!');
}

标签:javascript,modernizr,yepnope
来源: https://codeday.me/bug/20190712/1442398.html