javascript - 现代化测试

标签 javascript modernizr yepnope

这怎么会同时提示 yes 和 false?

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

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

最佳答案

因为您直接在那里调用 alert()alert() 的结果(总是 undefined)被分配给yepnope 属性。您需要将 alert() 包装在一个函数中并改为分配该函数:

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

仍然 不会工作,因为它不是yepnope 的工作方式。 yepnope 应该是加载的 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/

相关文章:

javascript - IE8 和 Modernizr : Object doesn't support this property or method?

Javascript – 使用 Modernizr 媒体查询更改 SVG viewBox

javascript - 是否可以使用javascript知 Prop 有触摸功能的设备上是否使用了真正的鼠标?

Javascript 数组操作 : Is there a better way to do the following?

Javascript (Modernizr/YepNope.js) 语法和用法

javascript - 创建复杂的 SVG,无需中间字符串

javascript - 触发功能一次

javascript - 如何为选项卡 View 设置合适的大小?

javascript - 表单 onSubmit 返回 false 在 Chrome 中不起作用