12

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: 変数が見つかりません: FileReader

明らかに、それはそれに対処するための最良の方法ではありませんか?なぜこれがうまくいかないのですか?

4

3 に答える 3

30

私はあなたの場合、あなたはもっと簡単なチェックで逃げることができると信じています:

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

細かくてうるさい場合は、タイプを確認してください。

于 2011-07-19T15:12:46.017 に答える
7

あなたは書けるif (typeof FileReader !== "undefined")

Modernizrライブラリを使用して確認することもできます。

于 2011-06-19T16:57:42.353 に答える
2

または、このようなこともできます。

if('FileReader' in window) {
    // FileReader support is available
} else {
    // No support available
}
于 2011-10-17T12:24:40.927 に答える