以下关于JS代码兼容总结的问题,相信很多程序员都为这一点细节而且操心,下面结合JS教程一般用于处理前台页面。
1.IE getElementsByName兼容问题
尽量id与name不重名,否则IE会查找到id对应的元素
例如:
getElementsByName(‘test’)[0];
非IE选择input元素
IE则选择li元素
解决办法:id和name避免重名
2. IE首尾删除空格兼容问题
String.prototype.trim = function(){ return this.replace(/(^\s*)|(\s*$)/g, “”); }
IE调用时提示对象未定义
解决办法:
elem.value.toString().trim();
3.获取元素对象兼容所有浏览器
火狐只支持:srcElement
IE只支持:target
chrome srcElement和target都支持
解决办法:var element = elem.srcElement || elem.target;
4.IE获取子元素问题
获取子元素IE会产生#text,所以节点建值不同
解决办法:排除nodeName = #text 或者 nodeType == 3
赋值给新数组
var elementChildNodes = element.parentNode.childNodes;
var msg;
var msgArr = [];
for (var i = 0,childNodesCount = elementChildNodes.length; i < childNodesCount; i++) {
if(elementChildNodes[i].nodeType == 3) {
continue;
}else{
msgArr.push(elementChildNodes[i]);
}
};
5,IE创建select,option兼容问题
IE用document.createElement,appendChild,removeChild动态添加option
再获取表单时返回时字符串,不能获取表单元素
解决办法:
动态删除select中的所有options:
document.getElementById(“ddlResourceType”).options.length=0;
动态删除select中的某一项option:
document.getElementById(“ddlResourceType”).options.remove(indx);
动态添加select中的项option:
document.getElementById(“ddlResourceType”).options.add(new Option(text,value));
更多相关JS教程学习资料可登陆课课家在线学习平台进行查询学习!