dar*_*ryl 3 javascript modernizr yepnope
为什么这会发出警报,是和否?
Modernizr.load([
{
test: Modernizr.cssgradients,
yep: alert('Supports it!'),
nope: alert('Oh, damn! This browser sucks!')
}
]);
Run Code Online (Sandbox Code Playgroud)
我在OS X上使用最新的chrome.
And*_*y E 13
因为您alert()直接在那里调用,并且alert()(始终undefined)的结果被分配给yep和nope属性.您需要包装alert()一个函数并指定该函数:
Modernizr.load([
{
test: Modernizr.cssgradients,
yep: function () { alert('Supports it!') },
nope: function () { alert('Oh, damn! This browser sucks!') }
}
]);
Run Code Online (Sandbox Code Playgroud)
这仍然无效,因为它不是yepnope的工作方式. yep并且nope应该是加载的JS文件的路径:
Modernizr.load([
{
test: Modernizr.cssgradients,
nope: 'cssgradients-shim.js' //-> load a JS file to draw your gradients
}
]);
Run Code Online (Sandbox Code Playgroud)
正如您自己发现的那样,如果您不想使用集成的yepnope.js,您可以使用传统方式使用Modernizr :
if (!Modernizr.cssgradients) {
alert('Oh, damn! This browser sucks!');
}
Run Code Online (Sandbox Code Playgroud)