Javascript 在IE 9和早期版本中使用document.getElementById()

Javascript 在IE 9和早期版本中使用document.getElementById(),javascript,html,internet-explorer,Javascript,Html,Internet Explorer,我有一个用来上传文件的网页。表单上有两个输入字段。一种是文本类型,用于在数据库中为文件命名。另一个是文件类型,用于选择要上载的文件 <input type="text" name="docName" id="docName" size="35" value="" /> <input type="file" name="importFile" id="importFile" size="35" onchange="refreshFileName();"/> 这似乎在Chr

我有一个用来上传文件的网页。表单上有两个输入字段。一种是文本类型,用于在数据库中为文件命名。另一个是文件类型,用于选择要上载的文件

<input type="text" name="docName" id="docName" size="35" value="" />
<input type="file" name="importFile" id="importFile" size="35" onchange="refreshFileName();"/>
这似乎在Chrome、Firefox和IE10或IE11中都能正常工作。但它在IE9或更早版本中似乎不起作用。我所做的一切似乎都不能解决问题。关于我如何让它与早期版本的IE一起工作的任何建议(我已经想到了“告诉我的用户不要使用IE”的想法)

您可以使用:


此解决方案对Windows和Unix路径非常有用。

如果问题只是在IE中获取完整路径,请尝试以下方法:

var fileName = document.getElementById("importFile").value;
document.getElementById('docName').value = fileName.match(/[^\/\\]+$/);

较旧的IEs没有可转位的字符串。您需要进行一些基本的故障排除,看看它在哪里失败。这至少需要
console.log()
来检查变量。在IE9中测试过,效果很好。我刚刚在IE9中测试过。它工作正常。
str
是一个字符串数组(或者应该是),是
fileName.split()的结果@Mike,尝试一个警报(文件名)看看你得到了什么。我不能用IE9测试
var fullPath = document.getElementById('importFile').value; 
var filename = fullPath.replace(/^.*[\\\/]/, '');
var fileName = document.getElementById("importFile").value;
document.getElementById('docName').value = fileName.match(/[^\/\\]+$/);