1、addLoadEvent(网页加载完成后把多个自己编写的函数绑定到window.onload事件中)
*把现有的window.onload事件处理函数的值存入便令oldonload。
*如果在这个处理函数上还没有绑定任何函数,就像平时那样把新函数添加给它。
*如果在这个处理函数上已经绑定了一些函数,就把新函数追加到现有指令的末尾。
1 function addLoadEvent(func){ 2 var oldonload = window.onload; 3 if (typeof window.onload != 'function'){ 4 window.onload = func; 5 }else{ 6 window.onload = function() { 7 oldonload(); 8 func(); 9 } 10 } 11 }
2、在原有元素后插入一个新元素(虽然DOM本身没有提供insertAfter方法,但可以手动实现)
1 function insertAfter(newElement,targetElement){ 2 var parent = targetElement.parentNode; 3 if(parent.lastChild == targetElement){ 4 parent.appendChild(newElement); 5 }else{ 6 parent.insertBefore(newElement,targetElement.nextSibling);//在targetElement后面元素之前添加 7 } 8 }
3、不同浏览器使用Ajax时需建立的XMLHttpRequest对象不同,为兼容所有浏览器,可以调用以下函数
1 function getHTTPObject(){ 2 if(typeof XMLHttpRequest == "undefined"){ 3 XMLHttpRequest = function(){ 4 try {return new ActiveXObject("Msxml2.XMLHTTP.6.0");} 5 catch(e){} 6 try {return new ActiveXObject("Msxml2.XMLHTTP.3.0");} 7 catch(e){} 8 try {return new ActiveXObject("Msxml2.XMLHTTP");} 9 catch(e){} 10 return false; 11 } 12 } 13 return new XMLHttpRequest(); 14 }
4、交替更改表格行的背景色
a.如果浏览器支持CSS3:tr:nth-child(odd) {background-color:#ffc;}
tr:nth-child(even){background-color:#fff;}
b. JS实现:
1 function stripeTables(){ 2 if(!document.getElementsByTagName) return false; 3 var tables = document.getElementsByTagName("table"); 4 var odd,rows; 5 for(var i=0;i<tables.length;i++){ 6 odd=false; 7 rows= tables[i].getElementsByTagName("tr"); 8 for(var j=0;j<row.length;j++){ 9 if(odd==true){ 10 rows[j].style.backgroundColor="#ffc"; 11 odd = false; 12 }else{ 13 odd=true; 14 } 15 } 16 } 17 }