1. ホーム
  2. ジャバスクリプト

[解決済み】JavaScriptで、ファイル入力要素の「クリック」イベントをプログラム的に発生させることはできますか?

2022-04-17 19:33:50

質問

のクリックイベントを発生させたい。 <input type="file"> タグをプログラムで作成します。

click()を呼び出すだけでは何もしないようで、少なくともファイル選択ダイアログはポップアップされません。

リスナーを使ってイベントを捕捉し、イベントをリダイレクトすることを試していますが、誰かがクリックしたようなイベントを実際に実行させることはできていません。

どのように解決するのですか?

すべてのブラウザーでそれができるわけではありませんが、おそらく IE が行います。 しかし、MozillaとOperaはそれを許さない。

GMailでメールを作成する際、「ファイルを添付する」機能は、IEやこれに対応したブラウザではある方法で実装され、Firefoxやこれに対応していないブラウザでは別の方法で実装されます。

なぜできないのかわかりませんが、ひとつだけ セキュリティ上のリスクがあり、どのブラウザでも行うことが許されていないのは、HTMLのファイル要素にプログラム的にファイル名を設定することです。