处理不同浏览器兼容问题的例子:
获取子元素
//处理firstElementChild的兼容性问题
function getFirstElementChild(parent) {
if (parent.getFirstElementChild) {
return parent.getFirstElementChild;
}
var node, nodes = parent.childNodes, i = 0;
while (node = nodes[i++]) {
if (node.nodeType == 1) {
return node;
}
}
return null;
}
设置内容
function setInnerText(ele, con) {
if (typeof ele.innerText == 'string') {
ele.innerText = con;
} else {
ele.textContent = con;
}
}
注册事件设置监听
function addEventListener(element, eventName, callback) {
if (element.adEventListener) {
element.addEventListener(eventName, callback, false);
} else if (element.attachEvent) {
element.attachEvent('on' + eventName, callback);
} else {
element['on' + eventName] = callback;
}
}
event事件问题:e = e || window.event;
滚动条设置样式:body
换成html
浏览器边缘问题:加offset
function offsetTL(obj){
var offLeft=0,offTop=0;
while(obj){
offLeft + = obj.offsetLeft + obj.clientLeft;
offTop + = obj.offsetTop + obj.clientTop;
obj = obj.offsetParent;
}
return{left:ofL,top:ofT};
}
target对象:
var e=e||window.event;
var Target=e.target||e.srcElement;
var from=e.relatedTarget||e.formElement;
var to=e.relatedTarget||e.toElement;