无力吐槽!现在还在用IE8的组织简直就是反人类。这种组织也不必搞什么信息化,搞也搞不好,浪费人力物力。
IE8不支持js中的map方法
错误描述:
使用layui的穿梭框,在获取右边已选数据时,使用map方法把对象数据转换为数组
//获取穿梭框右侧已选中数据
var getTransferData = transfer.getData(‘department‘);
var transferList = new Array();
getTransferData.map(function(item){ //map方法报错
transferList.push(item.value);
});
解决方法1(亲自实践):
使用for循环把对象中的数据循环加入数组,放弃使用map方法
for(var i=0;i<getTransferData.length;i++)
{
transferList.push(getTransferData[i].value);
}
解决方法2(未实践):
修改IE不兼容MAP()的问题,自定义实现JavaScript的Map对象
由于IE8及以下版本不支持Map对象,本文为程序猿们提供了有效的解决方法。
本文重写了Map对象,实现了常用的set, get, put, clear, remove, delete, forEach, has, containsKey, isEmpty, size 等方法,使用和声明的方试和正常声明Map对象一样:
var map = new Map();
只需将下面代码拷入<script type="text/javascript"></script>中即可。
实现Map对象的代码如下,未亲自实践,仅供参考:
ckeditor-init.js报错
问题描述:
if (document.readyState != ‘loading‘ && document.body) {
document.addEventListener(‘DOMContentLoaded‘, initialiseCKEditor); //显示报错代码
runInitialisers();
} else {
document.addEventListener(‘DOMContentLoaded‘, runInitialisers);
}
解决方法:
没找到好的解决方法,直接把这个js引用注释掉,只留ckeditor.js,可以继续工作-_-||
<!--<script type="text/javascript" src="{% static "ckeditor/ckeditor-init.js" %}"></script>-->
<script type="text/javascript" src="{% static "ckeditor/ckeditor/ckeditor.js" %}"></script>
上传弹出下载框
错误描述:
上传文件用json返回数据给前端时,IE8无法处理,会弹出下载框。
解决方法:
在服务器端设置response文本格式为“text/html”,django方法如下。项目中使用ajax+iframe实现文件上传,在代码写在iframe的后台处理代码/upload/中。
return HttpResponse(json.dumps(ret),content_type=‘text/html‘)
可能存在需要前端重新用json格式编码问题,未实践。