ユーザーが Web サイトにファイルをアップロードするために必要な手順の数を減らしたいと考えています。そのため、jQuery を使用して、以下のマークアップ (簡略化) を使用してファイルを開き、ポストバックします。
<a onclick="$('#uplRegistrationImage').click();">
Change profile picture
</a>
<!-- Hidden to keep the UI clean -->
<asp:FileUpload ID="uplRegistrationImage"
runat="server"
ClientIDMode="static"
Style="display:none"
onchange="$('#btnSubmitImage').click();" />
<asp:Button runat="server"
ID="btnSubmitImage"
ClientIDMode="static"
Style="display:none"
OnClick="btnSubmitImage_OnClick"
UseSubmitBehavior="False" />
これは、Firefox と Chrome では問題なく動作します。リンクがクリックされたときにファイル ダイアログを開き、ファイルが選択されたときにポストバックを起動します。
ただし、IE9 では、ファイルのアップロードが読み込まれ、ユーザーがファイルを選択した後。OnChange が機能する代わりに、「SCRIPT5 アクセスが拒否されました」というエラーが表示されます。任意のタイムアウトを設定して、間隔を設定して、ファイルが役に立たないかどうかを確認しようとしました。
これに関連して他にも多くの質問があります。ただし、まともな答えがあるようには見えません(ファイルダイアログを透明に設定し、ボタンの後ろに置くと言いました!)
他の誰かがこれを解決しましたか? または、IE ユーザーにボタンを提供することは絶対に必要ですか?