我们希望减少用户在我们网站上传文件所需的步骤数量;所以我们使用jQuery打开和回发文件使用下面的标记(简化):在IE9上触发“SCRIPT5访问被拒绝”错误时发生。onclick()ongle
<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用户提供按钮是绝对必要的?
你为什么不只是发送的onclick您相同的功能的$(“#uplRegistrationImage”)的onclick? –
onclick 打开文件对话框;当选择一个文件时,应该触发一个回传。 –
我在Safari中遇到了同样的问题,所以我想IE9采取了与click()实际上需要用户单击相同的立场,从安全的角度来看,您大概可以理解。 – samazi