我们希望减少用户在我们的网站上上传文件所需的步骤;所以我们使用 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 用户提供一个按钮?