ie8的问题确实很让人头疼,不过今天替大家解决这些问题
第一步前台导入工具js:
因为ie8不支持formdata,所以我们通过工具来解决 这里用到fileupload.js,
但是它本身也不支持,所以我重写了一部分源码
(确实是有点吹牛逼的意思,其实是解决了一点取值不支持ie8的问题)
这块是fileupload.js源码
jQuery.extend({
handleError: function (s, xhr, status, e) {
// If a local callback was specified, fire it
if (s.error) {
s.error.call(s.context || s, xhr, status, e);
}
// Fire the global callback
if (s.global) {
(s.context ? jQuery(s.context) : jQuery.event).trigger("ajaxError", [xhr, s, e]);
}
},
createUploadIframe: function (id, uri) {
var frameId = 'jUploadFrame' + id;
if (window.ActiveXObject) {
if (jQuery.browser.version == "9.0") {
io = document.createElement('iframe');
io.id = frameId;
io.name = frameId;
}
else if (jQuery.browser.version == "6.0" || jQuery.browser.version == "7.0" || jQuery.browser.version == "8.0") {
var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');
if (typeof uri == 'boolean') {
io.src = 'javascript:false';
}
else if (typeof uri == 'string') {
io.src = uri;
}
}
}
else {
var io = document.createElement('iframe');
io.id = frameId;
io.name = frameId;
}
io.style.position = 'absolute';
io.style.top = '-1000px';
io.style.left = '-1000px';
document.body.appendChild(io);
return io;
},
ajaxUpload: function (s, xml) {
//if((fromFiles.nodeType&&!((fileList=fromFiles.files)&&fileList[0].name)))
var uid = new Date().getTime(), idIO = 'jUploadFrame' + uid, _this = this;
var jIO = $('<iframe name="' + idIO + '" id="' + idIO + '" style="display:none">').appendTo('body');
var jForm = $('<form action="' + s.url + '" target="' + idIO + '" method="post" enctype="multipart/form-data" style="display:none"></form>').appendTo('body');
var oldElement = $('#' + s.fileElementId);
var newElement = $(oldElement