我在我的应用程序中使用plupload库。我可以单击“选择文件”按钮,并使用Chrome和Firefox添加文件,但是使用IE8,当我单击“选择文件”按钮时,没有任何反应。
这是我的JS实现
var url = webAPIHost.toLowerCase().replace("api/", "") + 'FileUpload/FileHandler';
var total_uploads = 0;
var uploaded = 0;
uploaderExpense = new plupload.Uploader({
runtimes: 'html5,html4',
browse_button: 'pickfiles', // you can pass in id...
container: document.getElementById('fileupload'), // ... or DOM Element itself
url: url,
flash_swf_url: '../js/Moxie.swf',
silverlight_xap_url: '../js/Moxie.xap',
multipart_params: {
"expenseDetailID": "",
"fileID": ""
},
drop_element: 'dropzone',
filters: {
max_file_size: '10mb',
mime_types: [
{title: "Image files",extensions: "jpg,gif,png"},
{title: "Zip files",extensions: "zip"}
]
},
init: {
PostInit: function() {
document.getElementById('filelist').innerHTML = '';
},
FilesAdded: function(up, files) {
plupload.each(files, function(file) {
var filename = "";
if ($.browser.msie && parseInt($.browser.version, 10) <= 9) {
filename = file.name;
}
document.getElementById('filelist').innerHTML += '<div id="' + file.id + '" class="uploadListItem"><span class="bf-delete-image" id="del' + file.id + '">X</span>' + filename + '<b></b></div>';
if (!$.browser.msie || parseInt($.browser.version, 10) >= 10) {
for (var i = 0; i < files.length; i++) {
showImagePreview(files[i]);
}
}
});
$('#isAttachedToDocWrap').hide();
},
FilesRemoved: function(up, file) {
if (up.files.length == 0) {
$('#isAttachedToDocWrap').show();
}
},
UploadProgress: function(up, file) {
document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "%</span>";
},
Error: function(up, err) {
}
}
});
这是HTML部分
<div id="filelist"></div>
<div id="fileupload" style="position: relative;">
<input type="button" id="pickfiles" value="Choose File" style="width: 100px; position: relative; z-index: 1;">
<div id="html5_18n9h5j961i36ravev1b7t1vm23_container" class="moxie-shim moxie-shim-html5" style="position: absolute; top: 0px; left: 0px; width: 0px; height: 0px; overflow: hidden; z-index: 0;"><input id="html5_18n9h5j961i36ravev1b7t1vm23" type="file" style="font-size: 999px; opacity: 0; position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;" multiple="" accept="image/jpeg,image/gif,image/png,application/zip"></div>
</div>
如您所见,“ plupload库”创建了div html5容器,这意味着代码已经存在,但是IE不会显示它或打开文件对话框。不知道为什么
Uploader库中有一个示例页面,可在IE上正常运行。这意味着实施不正确
我不能把手放在这里出了什么问题。
当我更改运行时以支持flash和silverlight时,就像这样runtimes: 'html5,flash,silverlight,html4'
;这有点奏效。我的意思是,在对话框打开之前,我必须多次单击“选择文件”按钮。它的反应非常非常缓慢。自从我在本地主机上工作以来,这是暂时的解决方案。
在测试时,我遇到了一个安全错误。我在这里找到了有关IE8和IE9 plupload的运行时的良好信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句