解决ueditor上传图片在IE中的兼容问题

修正ueditor不兼容IE的单图片BUG

找到源码中 simpleupload 模块 ,搜索 initUploadBtn,修改其中的一段代码为如下所示

omUtils.on(input, 'change', function(){
                function showErrorLoader(title){
                    if(loadingId) {
                        var loader = me.document.getElementById(loadingId);
                        loader && domUtils.remove(loader);
                        me.fireEvent('showmessage', {
                            'id': loadingId,
                            'content': title,
                            'type': 'error',
                            'timeout': 4000
                        });
                    }
                }
            	function createXMLHttpRequest() {
            		if(window.XMLHttpRequest){
            			return new XMLHttpRequest();
            		} else {
            			var names=["msxml","msxml2","msxml3","Microsoft"];
            			for(var i=0;i<names.length;i++){
            				try{
            					var name=names[i]+".XMLHTTP";
            					return new ActiveXObject(name);
            				}catch(e){
            				}
            			}
            		}
            		return null;
            	}
            	
            	if(!input.value) return;
                var loadingId = 'loading_' + (+new Date()).toString(36);
                var params = utils.serializeParam(me.queryCommandValue('serverparam')) || '';
                
                var imageActionUrl = me.getActionUrl(me.getOpt('imageActionName'));
                var allowFiles = me.getOpt('imageAllowFiles');

                me.focus();
                me.execCommand('inserthtml', '<img class="loadingclass" id="' + loadingId + '" src="' + me.options.themePath + me.options.theme +'/images/spacer.gif" title="' + (me.getLang('simpleupload.loading') || '') + '" >');

                /* 判断后端配置是否没有加载成功 */
                if (!me.getOpt('imageActionName')) {
                    errorHandler(me.getLang('autoupload.errorLoadConfig'));
                    return;
                }
                // 判断文件格式是否错误
                var filename = input.value,
                    fileext = filename ? filename.substr(filename.lastIndexOf('.')):'';
                if (!fileext || (allowFiles && (allowFiles.join('') + '.').indexOf(fileext.toLowerCase() + '.') == -1)) {
                    showErrorLoader(me.getLang('simpleupload.exceedTypeError'));
                    return;
                }
                
        		var formData = new FormData();
        		var file=input.files[0];
        		formData.append(me.options.imageFieldName, file);
        		
        		var xhr = createXMLHttpRequest();
        		xhr.open('POST', imageActionUrl + (imageActionUrl.indexOf('?') == -1 ? '?':'&') + params, true);
        		xhr.onreadystatechange = function(){
        			
        			  //响应完成且响应正常  
        		    if (xhr.readyState == 4)  
        		    {  
        		        if (xhr.status == 200)  
        		        {  
        		        	json = (new Function("return " + xhr.responseText))();
                            link = me.options.imageUrlPrefix + json.url;
                            if(json.state == 'SUCCESS' && json.url) {
                                loader = me.document.getElementById(loadingId);
                                loader.setAttribute('src', link);
                                loader.setAttribute('_src', link);
                                loader.setAttribute('title', json.title || '');
                                loader.setAttribute('alt', json.original || '');
                                loader.removeAttribute('id');
                                domUtils.removeClasses(loader, 'loadingclass');
                            } else {
                                showErrorLoader && showErrorLoader(json.state);
                            }
                            
        		        }  
        		        else  
        		        {  		           
                            showErrorLoader && showErrorLoader(me.getLang('simpleupload.loadError'));
        		        }  
        		        form.reset();
        		    }  
        			
        		};

        		xhr.send(formData);
            	
            	
            });


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值