カスタム ファイル アップロード アプリケーションに取り組んでいます。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 (名前 != '')
{
名前 = '';
}
}