カスタム ファイル アップロード アプリケーションに取り組んでいます。2 つの大きな問題があります。
- 以下のコードは、Mozilla および IE のファイル ダイアログ ボックスを開いているわけではありません。
- Chromeでは機能しますが、最初のクリックでファイルを選択すると、ファイルが本文に追加されることはありません。ただし、2 回目のクリックでは、1 回目のクリックで参照したファイルを本文に追加します。
上記の問題に対するヘルプをいただければ幸いです。
関数 perform1Click(ノード) { アラート ("INIT"); var evt = document.createEvent("MouseEvents"); evt.initEvent("クリック", true, false); node.dispatchEvent(evt); アラート(3) getFile(evt); } 関数 getFile(イベント) { var ファイル = event.target.files; var totalSize = 0; if (totalSize > 1024*10) { alert('合計サイズが 1 MB を超えています'); 戻る; } //アラート(ファイル) //alert(files.length); for (var i = 0, f; f = ファイル[i]; i++) { displayFileList(f.name, f.size); totalSize = totalSize+f.size; } } 関数displayFileList(名前、サイズ){ if (名前!= '') { var top_plugin = document.getElementById('top_plugin'); // タグを作成 var ptag = document.createElement("p"); // div を作成 var divBox = document.createElement("div"); divBox.setAttribute('class', 'divBox'); // 入力を作成[type='checkbox'] var inputCheckBox = document.createElement("入力"); inputCheckBox.setAttribute('タイプ', 'チェックボックス'); inputCheckBox.setAttribute('id', 'checkboxClass') // チェックボックスを div に追加します。 divBox.appendChild(inputCheckBox); // divBox のテキスト ノードを作成し、divBox に追加します。 var txtNode = document.createTextNode(名前); divBox.appendChild(txtNode) var sizeDivBox = document.createElement("p"); sizeDivBox.setAttribute('style', 'clear:both; display: inline-block;'); var txtSizeNode = document.createTextNode(サイズ); sizeDivBox.appendChild(txtSizeNode); divBox.appendChild(sizeDivBox); // divBox を ptag に追加します。 ptag.appendChild(divBox); //ptag.appendChild(divTxt); // top_plugin div に ptag を追加します。 top_plugin.appendChild(ptag); } // ファイルの値が null でない場合は、空白にします。 if (名前 != '') { 名前 = ''; } }