对象为null或IE9中存在未定义错误



所以我学习了一些异步上传文件的教程。该项目在Mozilla Firefox和Chrome上运行良好,但当我在Internet Explorer 9中运行时,它会出现错误:

0x800a138f - Microsoft JScript runtime error: Unable to get value of the property 'length': object is null or undefined

这是显示错误的地方:

<script type="text/javascript">
    $(document).ready(function () {
        $("#btnUpload").click(OnUpload);
    });    
function OnUpload(evt) {
        var files = $("#fileUpload").get(0).files;
        if (files.length > 0) {        <---//Error
    ...

我已经尝试了一些修复,例如将其添加到头标签中

<head>
<meta http-equiv="X-UA-Compatible" content="IE=9" >

这对我不起作用。因此,我们将不胜感激。

您还没有指定用于文件上传的jQuery插件,但我猜它使用的浏览器功能(file API)在IE9等旧浏览器中不可用。

有一些方法可以使用旧浏览器上传文件;如果你想支持IE9,你必须使用一种较旧的技术。

你可能想看看这里列出的一些库——这是一个"Polyfill"库的列表,这些库声称可以在旧浏览器中与这一新功能保持一定程度的兼容性。我不能保证它们中的任何一个都能很好地与您现有的jQuery插件配合使用,但它们至少应该为您提供一个使该功能发挥作用的起点。

最新更新