IE9兼容问题

本篇文章记录下我最近在兼容IE9所遇到的问题以及解决方法
1、button中添加其他标签在IE9中会失效


//此写法在谷歌、360及火狐等常规浏览器中运行正常,但在IE9及以下版本,button中的input无法解析,在input中的事件无法执行,解决方式是将button标签改为其他标签,如span、div等;

2、innerHtml方法IE9中为只读,无法赋值

我们经常使用xxx.innerHTML=HTML片断来生成节点元素,再把它们插入到目标元素的各个位置上,实际上就是insertAdjacentHTML,但在IE9中,innerHtml方法IE9中为只读,无法赋值给元素赋值,且报错为‘该操作的目标文件无效’,该问题解决方法如下:
(1)、appendChild()
(2)、replaceChild()
(3)、使用jq的方法XXX.html();

3、type=file 点击附件无法上传
本次遇到的问题是type=file在IE9中能正常点击选择附件,但无法获取附件内容,解决思路如下:
(1)、由于IE不支持formData的方法,故在提交时需使用form.ajaxSubmit(option)方法来提交表单;
(2)、如果您此时仍然提交失败,建议尝试更换jq库的版本,我们是在使用ajaxSubmit后仍无法正常提交,将本来引用的jq库3.4.0版本更换为1.7.2版本,测试成功,建议引入2.0版本一下的jq;
(3)、如果执行到这一步仍然失败,查看后台接口返回格式是否为字符串:

$.ajax({
		 url: "/upload",
        type: 'POST',
        cache: false,
        data: '',
        dataType:'text',//不要使用json格式,在IE中后台返回json格式在IE中无法解析,要写成字符串的格式返回
         processData: false,
         contentType: false,
         success:
         error:
});

你可能感兴趣的:(前端开发,javascript,html5)