Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中的本地文件支持检测-Windows Phone 8错误_Javascript_Windows Phone 8_Fileapi - Fatal编程技术网

JavaScript中的本地文件支持检测-Windows Phone 8错误

JavaScript中的本地文件支持检测-Windows Phone 8错误,javascript,windows-phone-8,fileapi,Javascript,Windows Phone 8,Fileapi,我有一个关于HTML元素的问题——特别是,为什么所有的迹象都表明它在WindowsPhone8(IE10Mobile)上受支持,但它确实不起作用 我一直在从事一个照片上传程序项目,在Javascript开发中,我有检查文件API支持的逻辑,所以我知道我是否可以支持本地文件选择。令人惊讶的是,我的代码在WindowsPhone8上返回了一个true值。这不应该是一个问题,但是wp8并不真正支持元素(如在一篇文章中的Windows博客中所述)。wp8的结果是,如果页面上有元素,它会显示得很好,但单击

我有一个关于
HTML元素的问题——特别是,为什么所有的迹象都表明它在WindowsPhone8(IE10Mobile)上受支持,但它确实不起作用

我一直在从事一个照片上传程序项目,在Javascript开发中,我有检查文件API支持的逻辑,所以我知道我是否可以支持本地文件选择。令人惊讶的是,我的代码在WindowsPhone8上返回了一个
true
值。这不应该是一个问题,但是wp8并不真正支持
元素(如在一篇文章中的Windows博客中所述)。wp8的结果是,如果页面上有
元素,它会显示得很好,但单击“浏览”按钮时不会发生任何事情

检查文件API支持的我的JS代码是:

function checkLocalFileSupport() {
   if (window.File && window.FileReader && window.FileList && window.Blob) {
       return true;
   }
   return false;
}
我希望有人能解释一下如何更好地检查和确认特定设备/浏览器上是否有本地文件选择。正如我所说,我当前的解决方案在wp8上返回
true
。我一直在尝试各种不同的方法来查看是否启用了
(下面的代码片段),但对于WP 8,所有其他解决方案仍然返回
true

一个警告是:我真的希望代码与设备无关。因此,我不想嗅探浏览器用户代理。在我看来,用户代理嗅探是一种我不想实现的后备方法

以下是我找到并尝试过的一些解决方案,但在WP 8上仍然返回
true

function checkLocalFileSupport() {
   if (window.File && window.FileReader && window.FileList && window.Blob) {
       return true;
   }
   return false;
}
在输入元素上引用禁用的
属性:

function isInputTypeFileImplemented() {
    var elem = document.createElement("input");
    elem.type = "file";
    if (elem.disabled) return false;
    try {
        elem.value = "Test"; // Throws error if type=file is implemented
        return elem.value != "Test";
    } catch(e) {
        return elem.type == "file";
    }
}
使用jquery.support:

var support = (function(undefined) {
    return $("<input type='file'>")    // create test element
                 .get(0)               // get native element
                 .files !== undefined; // check whether files property is not undefined
})();
var支持=(函数(未定义){
返回$(“”)//创建测试元素
.get(0)//获取本机元素
.files!==未定义;//检查文件属性是否未定义
})();
希望有人能帮助我们了解如何准确地让wp8为本地文件支持返回
false

提前谢谢

根据一些系统返回假阳性支持,您可以通过使用RegExp(如

if (navigator.userAgent.match(/(Android (1.0|1.1|1.5|1.6|2.0|2.1))|(Windows Phone (OS 7|8.0))|(XBLWP)|(ZuneWP)|(w(eb)?OSBrowser)|(webOS)|(Kindle\/(1.0|2.0|2.5|3.0))/)) {
   return false;
}