这怎么会同时提示是和错误?
Modernizr.load([
{
test: Modernizr.cssgradients,
yep: alert('Supports it!'),
nope: alert('Oh, damn! This browser sucks!')
}
]);
我在 OS X 上使用最新的 chrome。
最佳答案
因为您在那里直接调用 alert()
,并且 alert()
(始终为 undefined
)的结果被分配给 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 - 现代化测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7808585/