<input type="file">
ファイルが選択されたときにファイル入力フィールド (タグ)の横にボタンを追加する Firefox 拡張機能を開発します。
拡張機能のロジックを含むファイル overlay.js は、次のメソッドを通じて「ファイル選択」イベントを管理します。
var xpitest = {
...
onFileChosen: function(e) {
var fileInput = e.explicitOriginalTarget;
if(fileInput.type=="file"){
var parentDiv = fileInput.parentNode;
var newButton = top.window.content.document.createElement("input");
newButton.setAttribute("type", "button");
newButton.setAttribute("id", "Firefox.Now_button_id");
newButton.setAttribute("value", "my button");
newButton.setAttribute("name", "Firefox.Now_button_name");
parentDiv.insertBefore(newButton, fileInput);
}
}
...
}
window.addEventListener("change", function(e) {xpitest.onFileChosen(e)},false);
私の問題は、ファイルを選択するたびに、新しいボタンが追加されていることです。次の図を参照してください。
http://img11.imageshack.us/img11/5844/sshotn.png
同じファイルを複数回選択しても、新しいボタンは表示されません (これは正しいです)。
ご覧のとおり、最初のファイル入力では、1 つのファイルのみが選択されています。
2 番目のファイルでは、2 つの異なるファイルを選択しました。実際には、2 つのボタンが作成されています...
3 番目に、3 つの異なるファイルを選択しました。
正しい動作は次のとおりです。
- ファイルが選択されたら、入力フィールドの横に my_button を作成します
- my_button が存在する場合は、それを削除して別のボタンを作成します (ファイル名で何かを行うカスタム イベントに接続する必要があるため、これが必要です) 。
私の質問は、ボタンを正しく削除するにはどうすればよいですか? my_button html コードはページ ソースに表示されないことに注意してください。
ありがとう