最近业务部门反映咱们商城的兼容性不是很好,尤为是在IE浏览器上,通过调研,咱们决定对IE9及以上版本的IE内核浏览器进行主流程测试,发现有哪些功能在IE9上不兼容javascript
很明显,在IE浏览器少了个css属性:line-height:33px;加上这个属性,在IE浏览器上就能够显示文字了。css
Tip:从此若是有开发人员再使用button这个标签,记得加上line-height这个属性,而且这个属性的值和height保持一致。html
解决方案:使用input value值取代placeholder值java
在须要使用input placeholder属性时引用已经封装好的input-placeholder-ie9.js脚本jquery
<script type="text/javascript" src="${CDNRoot}/template/tongan/statics/js/input-placeholder-ie9.js?time=202011051830"></script>
调试过程当中发现,每次出现选择文件弹出框,选择完图片以后,并未执行代码2,也就是说没有走进回调方法里。最后将代码1和代码2的顺序跌倒,问题解决。web
分析:jsp经过url请求传递参数给后端,可是url的格式不对会形成请求失败。这种url的问题常发生在在IE浏览器中,其余浏览器火狐、chrome等不会有问题。由于谷歌中会自动给空格和一些特殊字符编码,而IE没有这一步。ajax
解决方法:手动给url编码。chrome
function searchProduct(searchFields){ window.location.href = webPath.webRoot + "/productlist.ac?keyword=" + encodeURI(searchFields); }
IE9浏览器是不支持FormData()格式上传文件的,当执行到var formData = new FormData();这行代码时就会报错。为了避免破坏以前的代码,前台和后台通常会再写一套针对IE9浏览器的文件上传的代码json
<script type="text/javascript" src="${CDNRoot}/template/tongan/statics/js/jquery.form.js"></script>
<form action="${webRoot}/member/paircoderelation/paircoderelation/upload.ac" enctype="multipart/form-data" method="post" id="_upload_from" > <div class="_view_line"> <span class="_view_line_lable">上传附件:</span> <input class="excle_file" type="file" accept=".xlsx;" name="excleFile"/> </div> <div class="_view_line"> <input onclick="uploadFile();" class="import_upload_btn" type="button" value="上传文件"/> </div> </form>
//1.导入(上传文件) function uploadFile() { var ver = getBrowserType(); if(ver=="IE6" || ver=="IE7" || ver=="IE8" || ver=="IE9"){ console.log('文件file=>',$('.excle_file').val()); var file = $('.excle_file').val(); if(file != ''){ var options = { url :webPath.webRoot + "/member/paircoderelation/paircoderelation/upload.bin",// 跳转到 action dataType:'text/html', success : function (data) { window.location.href = webPath.webRoot + "/module/member/xxxxx.ac"; }, error : function() { showAlert("导入excel失败", "error"); console.log('报错------') } }; $('#_upload_from').ajaxSubmit(options); } }else{ var formData = new FormData(); if ($('.excle_file')[0].files[0] == null) { showAlert("请选择Excle文件", "error"); return; } formData.append("excleFile", $('.excle_file')[0].files[0]); $.ajax({ type: "post", url: webPath.webRoot + "/xxxxxx.json", data: formData, processData: false, contentType: false, success: function (data) { console.log(data.errors); }, error: function (XMLHttpRequest, textStatus) { } }); } }
前台判断是不是IE9一下版本的浏览器,若是是,就使用Form表单ajaxSubmit()形式上传后端
注意ajax的dataType要写成是‘text/html’,不能是‘json’。