Обнаружение Javascript FileReader в Safari - PullRequest
12 голосов
/ 19 июня 2011

Мне известно о том, что объект FileReader недоступен в Safari 5.0.5.У меня есть сценарий, который использует его, и подумал, что я просто смогу определить, существует ли объект для запуска некоторого альтернативного кода, как предлагается здесь,

http://www.quirksmode.org/js/support.html

Так что мойкод:

if( FileReader )
{
    //do this

}else{

    //the browser doesn't support the FileReader Object, so do this
}

Проблема в том, что я проверил его в Safari, и как только он попадет в оператор if, я получу эту ошибку, и скрипт прекратит работу.

ReferenceError: Can 'найти переменную: FileReader

Так что, очевидно, это не лучший способ справиться с этим тогда?Есть идеи, почему это не работает?

Ответы [ 3 ]

29 голосов
/ 19 июля 2011

Я верю, что в вашем случае вы можете получить более простой чек:

if(window.FileReader) {
   //do this
} else {
   //the browser doesn't support the FileReader Object, so do this
}

проверьте тип, если вы действительно хотите быть гранулированным и требовательным.

7 голосов
/ 19 июня 2011

Вы можете написать if (typeof FileReader !== "undefined")

Вы также можете использовать библиотеку Modernizr , чтобы проверить вас.

1 голос
/ 17 октября 2011

Или вы можете сделать что-то вроде этого.

if('FileReader' in window) {
    // FileReader support is available
} else {
    // No support available
}
...