Javascript 现有表单的FormData在IE10中通过JS触发失败
我只是使用HTML5提供的新FormData类创建一个webapp 要有一个定制样式的“选择你的文件”按钮,我想通过javascript触发文件输入元素上的点击事件 这适用于IE10和Chrome,但当我尝试使用表单创建FormData实例时,它在IE10中失败,并在此行显示消息“SCRIPT5‘拒绝访问’”:Javascript 现有表单的FormData在IE10中通过JS触发失败,javascript,html,internet-explorer-10,Javascript,Html,Internet Explorer 10,我只是使用HTML5提供的新FormData类创建一个webapp 要有一个定制样式的“选择你的文件”按钮,我想通过javascript触发文件输入元素上的点击事件 这适用于IE10和Chrome,但当我尝试使用表单创建FormData实例时,它在IE10中失败,并在此行显示消息“SCRIPT5‘拒绝访问’”: var fd = new FormData(f.get(0)); 如果我使用本机输入元素触发文件打开对话框,它也可以在IE10中工作 有关测试,请参阅以下JSFIDLE: 在IE10中
var fd = new FormData(f.get(0));
如果我使用本机输入元素触发文件打开对话框,它也可以在IE10中工作
有关测试,请参阅以下JSFIDLE:
在IE10中有没有一个选项可以让这项功能正常工作,或者我被难看的默认“选择文件”按钮卡住了
提前感谢,,
McFarlane我无法检查,但尝试附加数据
var formData = new FormData();
var files = event.originalEvent.target.files || event.originalEvent.dataTransfer.files;
$.each(files, function () {
formData.append("files[]", this);
});
IE有自己的风格,甚至在版本10:) 我不知道解决方案,但也许这个解决方案会对您有所帮助:尝试将透明输入元素放置在样式化按钮上方
<span class="open-wrapper">
<input type="file" name="file" />
<span class="open">open Dialog</span>
</span>
另一种解决方法:
var input = document.querySelector('input[type=file]');
var fd = new FormData();
for (var i = 0, l = input.files.length; i < l; i++) {
fd.append('file', input.files[i]);
}
var input=document.querySelector('input[type=file]”);
var fd=新FormData();
for(var i=0,l=input.files.length;i
即使在单击样式按钮后选择了文件,它也可以工作。但是从何处获取这些文件?您的代码段中触发了哪个事件?您可以绑定“更改”事件并从输入中获取文件。例如(仅删除事件):
<span class="open-wrapper">
<input type="file" name="file" />
<span class="open">open Dialog</span>
</span>