最近改了一些IE11下一些功能无法实现的项目,发现了有一些IE8下的方法 ,在IE11下被取消或者替代了,如下:
1.JavaScript 运行时错误: 对象不支持“attachEvent”属性或方法;
attachEvent 这个方法在IE11下改成了addEventListener ,所以我这里加了浏览器版本判断 才得以实现了IE8 和IE11下都好用
if (navigator.appName == "Microsoft Internet Explorer" && (navigator.appVersion.match(/8./i) == "8." || navigator.userAgent.indexOf("MSIE 8.0") > 0 || navigator.appVersion.match(/7./i) == "7.")) {
window.attachEvent("onload", OverrideBaseFunction); } else { window.addEventListener("onload", OverrideBaseFunction); }2.无法获取未定义或 null 引用的属性“tags”
因为这里引用了Jquery,但是在下面没有用到
源代码: var radios=document.body.all.tags("INPUT");
for(var i=0;i<radios.length;i++) { if(radios[i].type=="radio") { if(radios[i].checked) { type=radios[i].value; break; } } }
改成:
type =$('input:radio[name*="type"]:checked').val(); 因为引用的是Jquery但是没有使用到,所用用Jquery写一句话
var inputs=document.getElementById("cblProcess").all.tags("INPUT");
var isOne=false; for(var i=0;i<inputs.length;i++) { if(inputs[i].type=="checkbox"&&inputs[i].checked) { isOne=true; break; } }3.JavaScript 运行时错误: 无法获取未定义或 null 引用的属性“tags”
源代码: var tds=tr.all.tags("TD");
var result="";
for(var i=0;i<tds.length;i++) { var tdText=tds[i].innerText; if(i>0) result+=";"+tdText; else result+=tdText; }
改成:var result ="";
$(tr).each(function(){ $(this).children("TD").text(function(i,text){ if(i>0 && text !="") { return ";" + text; } }); result = $(this).children("TD").text(); $(this).children("TD").text(function(i,text){ if(i>0 && text !="") { return text.substr(1); } }); });