function getElementport(){
if(document.compatMode=="BackCompat"){
return {
width:Math.max(document.body.scrollWidth,document.body.clientWidth),
height:Math.max(document.body.scrollHeight,document.body.clientHeight)
}
}else{
return {
width:Math.max(document.documentElement.scrollWidth,document.documentElement.clientWidth),
height:Math.max(document.documentElement.scrollHeight,document.documentElement.clientHeight)
}
}
}
function getElementLeft(element){
var left=element.offsetLeft;
var parent=element.offsetParent;
while(parent!=null){
left+=parent.offsetLeft;
parent=parent.offsetParent;
}
return left;
}
function o_createDocument(){
if(typeof arguments.callee.activeXString!="string"){
var versions=["MSXML2.DOMDcument.6.0","MSXML2.Document.3.0","MSXML2.Document"],
i,
len;
for(i=0,len=versions.length;i<len;i++){
try{
new ActiveXObject(versions[i]);
arguments.callee.activeXString=versions[i];
break;
}catch(ex){
}
}
}
return new ActiveXObject(arguments.callee.activeXString);
}
这个函数的思想非常好,第一点,首先通过判断函数这个对象有没有activexString这个对象,因为这个函数只要执行一次,就会存在activexString这个变量,第二次执行就不会重复生成;第二点,就是通过try-catch语句来解决兼容性问题,真是聪明之极,如果有错误,就转到catch语句中,不执行下面语句,但是循环继续进行,这太好了;
function get_ajax(url,param,func,type){ if(param){ for(var i in param){ url+=url.indexOf("?")==-1?"?":"&"; url+=i+"="+param[i]; } } var xhr=new XMLHttpRequest(); xhr.onreadystatechange=function(){ if(xhr.readyState==4){ if(xhr.status>=200&&xhr.status<300||xhr.status==304){ func(xhr.responseText); } } } xhr.open("get",url,type) xhr.send(null); }