Это потому, что !!Modernizr.mq === true
всегда ... вы проверяете не то!
Согласно документам :
Если браузер вообще не поддерживает медиазапросы (например, oldIE), mq () всегда будет возвращать false.
Но это: Modernizr.mq()
тоже false
! Вы должны на самом деле что-то проверить. Здесь ключевое слово all
как раз то, что вам нужно (или only all
, как предлагает Павел):
Modernizr.load({
test: Modernizr.mq('only all'),
nope: 'polyfill.js'
});
Однако все пользовательские сборки Modernizr 2.0.x с mq
включают response.js , так что вам действительно не нужно проверять это, кроме случаев, когда вы хотите загрузить другую вместо того, чтобы заполнить В этом случае вам нужно будет отключить / удалить response.js из вашей сборки.
Modernizr 2.5.x
С появлением Modernizr 2.5.x вышесказанное больше не соответствует действительности. сокращенный список изменений указывает, что:
Мы больше не включаем Respond.js в компоновщик, поскольку он создавал конфликты при сбое в IE8. Если вам все еще требуется Respond.js в вашем проекте, просто включите его вручную.
Это означает, что Modernizr.mq('only all')
может сейчас вернется false
...