【问题标题】:Javascript FileReader detection in SafariSafari 中的 Javascript FileReader 检测
【发布时间】:2011-09-18 05:27:25
【问题描述】:

我知道 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

那么显然这不是处理它的最佳方式吗?知道为什么这不起作用吗?

【问题讨论】:

  • Safari 5.1.5 是否支持 FileReader?我在 5.1.5 中也遇到了错误。
  • 没有。在 5.2 中可能:caniuse.com/filereader

标签: javascript safari filereader referenceerror


【解决方案1】:

我相信在您的情况下,您可以通过更简单的检查来摆脱困境:

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

如果您真的想要细化和挑剔,请检查类型。

【讨论】:

  • 同意。您必须要求 window.FileReader 否则会发生 Uncaught ReferenceError (在 Android 2.3 上观察到)
【解决方案2】:

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

您也可以使用Modernizr 库为您检查。

【讨论】:

    【解决方案3】:

    或者你可以这样做。

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

    【讨论】:

      猜你喜欢
      • 2012-06-06
      • 2014-09-25
      • 1970-01-01
      • 1970-01-01
      • 2013-12-11
      • 2011-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多