Luk*_*ett 9 javascript c# asp.net jquery internet-explorer
我们希望减少用户在我们网站上传文件所需的步骤数; 所以我们使用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" />
Run Code Online (Sandbox Code Playgroud)
这在Firefox和Chrome中运行得非常好; 单击链接时打开文件对话框,并在选择文件时触发回发.
但是在文件上传加载并且用户选择了文件后的IE9中; 在OnChange工作的内容我得到"SCRIPT5访问被拒绝"错误.我已经尝试设置任意超时,设置间隔以检查文件是否无效.
还有其他一些与此有关的问题; 但是没有一个看起来有一个像样的答案(有人说将文件对话框设置为透明并悬停在按钮后面!)
有没有人解决这个问题?或者我是否必须为IE用户提供按钮?
nic*_*k_w 13
出于安全考虑,您不能尝试做什么.似乎是IE9不会让你以这种方式提交表单,除非它是触发它的文件上传控件的实际鼠标点击.
为了论证,我能够使用你的代码在change处理程序中进行提交,但它只在我Browse自己点击按钮时才有效.我甚至在$(document).ready方法中设置了一个由change处理程序设置的变量的轮询,指示应该触发提交 - 这也不起作用.
这个问题的解决方案似乎是:
样式化文件上载:
http://www.quirksmode.org/dom/inputfile.html
http://www.shauninman.com/archive/2007/09/10/styling_file_inputs_with_css_and_the_dom
参考文献:
jQuery:模拟点击<input type ="file"/>在Firefox中不起作用?
| 归档时间: |
|
| 查看次数: |
14554 次 |
| 最近记录: |