3

次のコードは Chrome では正常に動作しますが、IE9 では失敗します -processFiles()選択したファイルを取得するe.target.filesnull

<!DOCTYPE html>
<html>
<header>
    <meta http-equiv="X-UA-Compatible" content="IE=8" />
</header>
<body>
    <input type="file" id="uploader"/>

    <script>        
        var uploader = document.getElementById ("uploader");
        if (uploader.addEventListener) {  // all browsers except IE before version 9
            uploader.addEventListener ("change", processFiles, false);
        }
        else {
            if (uploader.attachEvent) {   // IE before version 9
                uploader.attachEvent ("change", processFiles);
            }
        }       

        function processFiles(e)
        {

            var files = e.target.files || e.dataTransfer.files;

            for (var i = 0 ; i < files.length ; i ++)
            {
                window.console && console.log && console.log(files[i].name);
            }           
        }       
    </script>   
<body>

何か案は?

4

1 に答える 1

2

コードは File API のサポートを前提としています。File API をサポートする IE の最初のバージョンは IE10 です。あなたのコードは、現在の状態ではクロスブラウザーで動作しません。

すでにクロスブラウザーのアップロードを処理し、多くの便利な機能を備えているFine Uploaderの使用を検討してください。

于 2013-03-01T03:33:40.160 に答える