重新运行自定义Modernizr测试

时间:2013-11-19 17:54:08

标签: javascript modernizr

我的测试会根据用户的某些互动而改变。我试图把它与现代化联系起来。

我试图通过再次调用addTest来强制重新运行测试。

//this works the first time
//adds html.mousing class
Modernizr.addTest('mousing',function(){
    return true;
});


//later in the code
//this DOES NOT add html.no-mousing
Modernizr.addTest('mousing',function(){
    return false;
});

有关如何重新运行或刷新现代化器测试的任何想法吗?

1 个答案:

答案 0 :(得分:1)

Modernizr用于测试浏览器功能,而不是根据用户交互任意切换类。 (仅仅因为用户与您的网页进行了互动并不意味着浏览器突然无法“鼠标”)。最好不要将它作为Modernizr测试添加,只需在需要时添加/删除类名。

但是,要回答您的问题,您需要删除Modernizr上的鼠标缓存值并重新运行测试,同时另外手动删除html元素上任何匹配的类名。类似的东西:

Modernizr.addTest('mousing',function(){
  return true;
});
/* ... */
delete Modernizr.mousing;
Modernizr.addTest('mousing',function(){
  document.html.className = document.html.className.replace(/\b(no-)?mousing\b/g, '');
  return false;
});