2015-01-21 7 views
1

Все, что я хочу сделать, это обнаружить поддержку Canvas в браузере. Страница «Документация» Modernizr имеет длину в тысячу строк, но, похоже, не может просто объяснить функцию обнаружения объектов (ее основная функция) и вместо этого написана о полиполнах. Во всяком случае, это:Как пользователь modernizr для обнаружения поддержки холста

Modernizr.canvas 

Просто возвращает undefined вместо true или false. Как я могу заставить Modernizr фактически сказать мне, существует ли эта функция в браузере или нет?

ответ

1

Modernizr не сообщает false, когда что-то не поддерживается. Он сообщает только true, если они есть, просто учитывая тот факт, что неподдерживаемые свойства не определены, действуют как значение false.

В Firefox я нахожусь, например, Modernizr.canvas сообщает true. На старой версии Android, он сообщает undefined, что в условном эквивалентно false:

if (Modernizr.canvas) { 
    // do canvasy things 
} else { 
    // notify users that you need canvas, and their browser won't work 
} 

Он делает это для всего: если поддерживается, это будет правдой. Если нет, на объекте Modernizr это не будет собственностью, и поэтому вызов сделает отчет JS-движка undefined в соответствии со спецификациями JavaScript.

+0

Эмм, это на самом деле звучит как ошибка. Modernizr выводит все результаты поиска на «истинные» или «ложные» - хотя могут быть некоторые исключения. Какую версию вы используете? –

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