2013-08-31 2 views
4

Я новичок в Modernizr, и я просто ищу простой способ проверить общую совместимость браузера. Я создал сценарий Modernizr для тестирования только самых важных компонентов моего веб-приложения, которое сильно зависит от HTML5, CSS3 и современных методов JavaScript. Есть ли способ запустить все эти тесты одновременно? Просмотрев документацию, я вижу множество способов протестировать каждую функцию один за другим, но я не вижу способ сделать это сразу. Я надеюсь сделать что-то вроде этого:Есть ли способ выполнить все тесты Modernizr сразу?

псевдокод

if (Modernizr.testAll()) { 
    // Load site 
} else { 
    // Redirect to compatibility page 
} 

ответ

4

Оказывается, что все тесты хранятся как булевы непосредственно в Modernizr объекта, так что если вы создаете приложение с много зависимостей художественных и вы хотите, чтобы проверить их все сразу, используйте:

var supported = true; 
for (var feature in Modernizr) { 
    if (typeof Modernizr[feature] === "boolean" && Modernizr[feature] == false) { 
    supported = false; 
    break; 
    } 
} 
+1

Недавно я подумал, что «Modernizr .__ all__» или что-то может быть полезно - особенно с новым API-интерфейсом Modernizr.on(): 'Modernizr.on ('__ all__', function() {/ * все асинхронные тесты запустили * /}); '... что вы думаете @David? –

+0

@StuCox: Я думаю, это было бы здорово - это определенно было бы полезно в моей ситуации. –

+0

Это не работает хорошо для меня: он только петли над небольшим подмножеством всех тестов. –

0

Я искал то же самое, и я придумал следующий код:

for (var feature in Modernizr) 
{ 
    if (typeof Modernizr[feature] === "boolean") 
    { 
     console.log("Modernizr_" + feature + ": " +Modernizr[feature]); 

     for (var subFeature in Modernizr[feature]) 
     { 
      if (typeof Modernizr[feature][subFeature] === "boolean") 
      { 
       console.log("Modernizr_" + feature + "_"+ subFeature + ": " + Modernizr[feature]);   
      } 
     } 
    } 


} 

HTH!

Смежные вопросы