Javascript破坏Internet Explorer中属性的空值-我如何让IE忽略这一点?
Internet explorer正在为以下代码生成此错误:Javascript破坏Internet Explorer中属性的空值-我如何让IE忽略这一点?,javascript,null,internet-explorer-9,Javascript,Null,Internet Explorer 9,Internet explorer正在为以下代码生成此错误: SCRIPT5007:无法获取属性“0”的值:对象为null或未定义 用于“document.getElementById('files').files[0]” 文件[0]为空是正确的,但我不在乎,我怎么能告诉IE不在乎呢 谢谢试试 var file; if (document.getElementById('files').files){ file = document.getElementById('files').fil
SCRIPT5007:无法获取属性“0”的值:对象为null或未定义
用于“document.getElementById('files').files[0]
”
文件[0]为空是正确的,但我不在乎,我怎么能告诉IE不在乎呢
谢谢试试
var file;
if (document.getElementById('files').files){
file = document.getElementById('files').files[0];
}
试试看
如果文件未定义,这将短路并返回未定义
,否则将返回第一个文件
澄清一下,错误表明文件
是未定义的变量,访问属性0
会导致错误。如果它是files[0]
本身,则表达式将返回undefined
var file = document.getElementById('files').files[0] || "undefined";
如果文件未定义,这将短路并返回未定义
,否则将返回第一个文件
澄清一下,错误表明
文件
是未定义的变量,访问属性0
会导致错误。如果它是文件[0]
本身,表达式将返回未定义的这很旧,但我想为像我一样来到这里的任何人回答
var file = document.getElementById('files').files[0] || "undefined";
正如Dennis所说,错误表明files是一个未定义的变量,我很确定问题在于IE9不支持files属性
正如你所见,IE10是必需的
所以试试这个:
var file;
try{
file = document.getElementById('files').files[0];
}catch(error){
file= null;
}
PS:我为我糟糕的英语道歉这很古老,但我想为任何像我一样来到这里的人回答
正如Dennis所说,错误表明files是一个未定义的变量,我很确定问题在于IE9不支持files属性
正如你所见,IE10是必需的
所以试试这个:
var file;
try{
file = document.getElementById('files').files[0];
}catch(error){
file= null;
}
PS:我为我糟糕的英语道歉你确定不是document.getElementById('files')。files
为空吗?这似乎就是错误所暗示的。@DarkFalcon是的,我不敢相信我没有想到这一点。谢谢大家的回答您确定不是document.getElementById('files')。files
为空吗?这似乎就是错误所暗示的。@DarkFalcon是的,我不敢相信我没有想到这一点。谢谢大家的回答,这将失败,因为文件
是未定义的对象。检查长度的问题与0相同。这将失败,因为文件
是未定义的对象。检查长度将出现与0相同的问题。