让不同的脚本在同一页面中协同工作

congpeixue 2008-09-06
/*
 * 让不同的脚本在同一页面中协同工作
 */ 
function addLoadEvent(fn) {
  if (typeof window.addEventListener != 'undefined') {
   	 window.addEventListener('load', fn, false);
  } else if (typeof document.addEventListener != 'undefined') {
   	 document.addEventListener('load', fn, false);
  } else if (typeof window.attachEvent != 'undefined') {
 	 window.attachEvent('onload', fn);
  } else {
	  var oldfn = window.onload;
	  if (typeof window.onload != 'function') {
	    window.onload = fn;
	  } else{
	    	window.onload = function() {
	        	if(oldfn) {
		        	oldfn();	
	        	}
	        	fn();
	        };
       }
  }
}


例如:对如下日期变更函数的调用

/*
 * 日期控件变更用
 */
function changeYearMonth(yearId,monthId,dayId){
    var year = document.getElementById(yearId);
    var month = document.getElementById(monthId);
    var day = document.getElementById(dayId);

	if(year == null || month == null || day == null){
		return;
	}

    //各月的标准的日数
    var monthCount = new Array(12);
    monthCount = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

    //取得被选择的月份的标准的日数
    var dayCount=monthCount[parseInt(month.value-1)];

    //考虑闰年
    var yearVal=parseInt(year.value);
    if ((month.value == 2)&&(((yearVal%4 == 0)&&(yearVal%100 != 0))||(yearVal%400 == 0)))
    {
        dayCount = 29;
    }
    
    if(month.value >12 || month.value < 1 || yearVal == 0){
        dayCount = 31;
    }

    //变更下拉列表中的(日)内容
    var dayVal=parseInt(day.value);
    
    //因为存在一个空白选项,故初始大小设为29 
    day.options.length=29;   
    for(var i=29;i<=dayCount;i++){
        day.options[i]=new Option(i,i);
        if (dayVal == i) {
            day.options[i].selected=true;
        }
    }
}




引用
addLoadEvent(changeYearMonth(*,*,*))



Global site tag (gtag.js) - Google Analytics