2011-06-19 34 views
12

我意識到FileReader對象在Safari 5.0.5中不可用。我有一個使用它,認爲我只是能夠檢測對象是否存在運行一些替代的代碼,在這裏提出了一個腳本,Safari中的Javascript FileReader檢測

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

所以,很顯然,這並不是對付它那麼最好的方法是什麼?任何想法爲什麼這不起作用?

+0

是Safari 5.1.5支持的FileReader嗎?我在5.1.5中也遇到了錯誤。 –

+0

不可能在5.2中:http://caniuse.com/filereader – forresto

回答

7

你可以寫if (typeof FileReader !== "undefined")

您還可以使用Modernizr庫檢查你。

+0

太好了,非常感謝 – barry

+0

爲什麼它被刪除?! – jayarjo

+0

@jayaro:什麼? – SLaks

28

我相信,在你的情況,你可以擺脫一個簡單的檢查:

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

檢查的類型,如果你真的想成爲粒狀和挑剔。

+0

同意。你必須要求window.FileReader,否則會出現Uncaught ReferenceError(在Android 2.3上觀察) –

1

或者你可以做這樣的事情。

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