Verjaardag script geeft in IE7 een fout, in FF is alles oke

Status
Niet open voor verdere reacties.

danman28

Gebruiker
Lid geworden
22 jul 2008
Berichten
40
Ik krijg met onderstaande script een fout in Internet explorer 7
regel 44, teken 5, fout: 'arrBday[...].1' is leeg of geen object

In Firefox werkt het allemaal goed, maar in IE7 krijg ik niets te zien,
weet iemand raad, ik heb na mijn idee alles nagekeken en ik kom er maar niet uit.

Code:
Date.prototype.getDiff = function(date, interval){
  if (typeof date == "string"){
     date = new Date(date);
  }
  if (isNaN(date) || !(date instanceof Date)){
     return NaN; //invalid date passed
  }
  if (typeof interval == "undefined") interval = "ms"; //msec (default)
  var diff = this - date; //alert(this+' - '+date+" = "+diff)//diff in msec
  switch(interval.toLowerCase()){
    case "s": //sec
      diff = diff/1000; break;
    case "n": //min
      diff = diff/(1000*60); break;
    case "h": //hr
      diff = diff/(1000*60*60); break;
    case "d": //day
      diff = diff/(1000*60*60*24); break;
    case "m": //month
      diff = diff/(1000*60*60*24*30); break;
    case "y": //year
      diff = diff/(1000*60*60*24*365); break;
    default:
      ; //msec
  }
  return Math.floor(diff);
}
var arrBday =[
  ['paulus', '7/22/1981', "http://website.nl"],
  ['jeroen', '9/20/1983', "http://website.nl"],
  ['mike', '11/9/1985', "http://website.nl"],
  ['joris', '11/9/1985', "http://website.nl"],
  ['Bas', '12/7/1980', "http://website.nl"],
  ['Cindy ', '12/2/1980', "http://website.nl"],
  ['Jeff ', '10/10/1983', "http://website.nl/"],
  ];

function getBdayList(numDays){
  var bday,temp,idx,diff;
  var today = new Date();
  var bdayList = new Array();
  for (var i=0;i<arrBday.length;i++){
    bday = new Date(arrBday[i][1]);
    if (isNaN(bday)) continue;
    temp = new Date(today.getFullYear(), bday.getMonth(), bday.getDate(), 23, 59, 59, 999);
    diff = temp.getDiff(today, "d");
    if (diff >= 0 && diff <= numDays){
       idx = bdayList.length;
       bdayList[idx] = new Object();
       bdayList[idx].name = arrBday[i][0];
       bdayList[idx].bday = arrBday[i][1];
       bdayList[idx].age = today.getDiff(bday, "y");
       if (diff > 6) bdayList[idx].age = bdayList[idx].age + 1;
       bdayList[idx].today = (diff == 0) ? true : false;
       bdayList[idx].site = arrBday[i][2];
    }
  }
  return bdayList;
}

function displayBdayList(){
  var bdayList = getBdayList(14);
  var len = bdayList.length;
  var s1 = ""; //today's bday list
  var s2 = ""; //next 2 week's bday list
  if (len>0){
    for (var i=0; i<len; i++){
       if (bdayList[i].today){
          if (s1 != ""){
             s1 += ', <a href="' + bdayList[i].site + '">' +  bdayList[i].name + ' (' + bdayList[i].age + ')</a>';
          }
          else{
             s1 = '<span class="bdayToday">Vandaag:</span> <a href="' + bdayList[i].site + '">' +  bdayList[i].name + ' (' + bdayList[i].age + ')</a>';
          }
       }
       else{
         if (s2 != ""){
            s2 += ', <a href="' + bdayList[i].site + '">' +  bdayList[i].name + ' (' + bdayList[i].age + ')</a>';
         }
         else{
            s2 = '<span class="bdayLater">Binnen 14 Dagen:</span> <a href="' + bdayList[i].site + '">' +  bdayList[i].name + ' (' + bdayList[i].age + ')</a>';
         }
       }
     }
  }
  else{
    s1 = "Geen verjaardagen.";
  }
  document.write('<div>' + s1 + '</div><div>' + s2 + '</div>');
}
 
Laatst bewerkt:
Heb je dit zelf gemaakt, dan weet je wel wat je doet denk ik, += is iets heel anders dan =.

Maar om op de vraag terug te komen, ik ben niet zeker, maar mss omdat er geen ' staat voor paulus in het maken van arrBday.
 
Heb je dit zelf gemaakt, dan weet je wel wat je doet denk ik, += is iets heel anders dan =.

Maar om op de vraag terug te komen, ik ben niet zeker, maar mss omdat er geen ' staat voor paulus in het maken van arrBday.

Bedankt voor je reactie,

Inmiddels na veel puzzelen heb ik de oorzaal gevonden, en opgelost. Op de laatste regel in arrBday staat :

['Jeff ', '10/10/1983', "http://website.nl/"], laatste komma weglaten en hij werkt nu ook in IE

moet zijn ['Jeff ', '10/10/1983', "http://website.nl/"]

Bedankt voor jullie hulp
 
Laatst bewerkt:
Ja, ter info, je maakt een dubbele rij[][], waarbij de verschillende rijen als 'elementen van een rij' door komma's gescheiden worden, net als gewone elementen van een rij. Op het einde dus geen komma meer maar gewoon afsluiten.:thumb:
 
Ja, ter info, je maakt een dubbele rij[][], waarbij de verschillende rijen als 'elementen van een rij' door komma's gescheiden worden, net als gewone elementen van een rij. Op het einde dus geen komma meer maar gewoon afsluiten.:thumb:

Ben er zelf ook achter :o 1 type foutje en over het hoofd gezien,
maar toch iedereen bedankt voor het meedenken:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan