我的测试会根据用户的某些互动而改变。我试图把它与现代化联系起来。
我试图通过再次调用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;
});
有关如何重新运行或刷新现代化器测试的任何想法吗?
答案 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;
});