在FIREFOX中, 可以直接通过ctrobj.attributes获取到用户设置的属性; 但在IE中它却把控件继承到的所有属性都取出来了, 刚开始我写了一个正则表达式去匹配outerHTML, 临时解决了问题. 但反过来觉得这不是好的方式, 决定还是从attributes入手, 写了下面这样一个方法:
function getCtrlAttributes(ctrobj) { var props = new Array(); for(var i=0; i<ctrobj.attributes.length; i++) { if(ctrobj.attributes[i].nodeValue != null && thisobj.attributes[i].nodeValue != "" ) //contentEditable的值是inherit if(thisobj.attributes[i] != thisobj.attributes["contentEditable"]) props.push(thisobj.attributes[i].nodeName); } return props; }
这个方法获取到的是所有属性值非空的属性集合, 请大家指正下, 给点好的建议.