cc: kalender stürzt in NN 4.79 ab

Wenn ich "<< <       >  >>"  klicke , stürzt NN 4.79 ab.. "Die Anweisung in "0x6004bb31" verweist auf Speicher in "0x0224b000". Der Vorgang "read" konnte nicht auf dem Speicher durchgeführt werden."

Source Code(  kalender.html)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4 Transitional//EN" /> <html> <head>   <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />   <meta http-equiv="expires" content="Mon, 14 Jan 2002, 12:00:00 GMT" />   <meta http-equiv="cache-control" content="no-cache" />   <meta http-equiv="pragma" content="no-cache" />   <title>kalender</title> <style type="text/css">  <!--  body,td{font-family:Arial,Geneva,Helvetica;font-size:10px;font-weight:normal;color:#000066;} select,input,textarea{font-family:Arial,Geneva,Helvetica;font-size:10px;} td.buttonSizeFuerNS{font-family:Arial,Geneva,Helvetica;font-size:12px;} .arrowtable{font-weight: normal; font-size: 11px; color: #02115a; font-family: verdana, arial, helvetica} .celltable{padding-right: 0px; padding-left: 0px; padding-bottom: 0px; width: 20px; padding-top: 0px; height: 17px; text-align: center} .headingtext{font-weight: bold; font-size: 11px; width: 60px; color: #02115a; font-family: verdana, arial, helvetica; height: 19px; text-align : center} .headingdays{font-weight: normal; font-size: 11px; color: #02115a; font-family: verdana, arial, helvetica} .headingdaysweekend{font-weight: normal; font-size: 11px; color: #ff0000; font-family: verdana, arial, helvetica}

.bodydays{font-weight: normal; font-size: 11px; color: #02115a; font-family: verdana, arial, helvetica; text-align: center; text-decoration: none}

.bodydaysweekend{font-weight: normal; font-size: 11px; color: #ff0000; font-family: verdana, arial, helvetica; text-align: center; text-decoration: none} .arrowtable:link{text-decoration: none}

.arrowtable:visited{text-decoration: none}

.arrowtable:hover{font-weight: bold; font-size: 11px}

.layerbackground{border-right: #02115a 1px solid; border-top: #02115a 1px solid; border-left: #02115a 1px solid; border-bottom: #02115a 1px solid; background-color: #e4e3e3; layer-background-color: #e4e3e3}   --> </style>

<script type="text/javascript">   <!--           var docHTML;     var dateField;     var arrayDays;     var arrayMonth;     var posX = 10, posY = 10;     var layerIDGlobal;

function buildNLSDate(nDay, nMonth, nYear, nPattern)     {       nDay = nDay+"";       nMonth = nMonth+"";       nYear = nYear+"";       stringReturnDate = nPattern;       stringDateFormat = nPattern.match(/d{1,2}/);       if(stringDateFormat==null)return false;       stringMonthFormat = nPattern.match(/M{1,3}/);       if(stringMonthFormat==null)return false;       stringYearFormat = nPattern.match(/yy+/);       if(stringYearFormat==null)return false;

((nDay.length==1)&&(stringDateFormat[0].length==2))?stringPrefix="0":stringPrefix="";       stringReturnDate=stringReturnDate.replace(/d+/,stringPrefix+nDay);       if (stringMonthFormat[0].length==3) {        var stringMonthArray = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");  stringReturnDate=stringReturnDate.replace(/M+/,stringMonthArray[nMonth-1]);       } else {         ((nMonth.length==1)&&(stringMonthFormat[0].length==2))?stringPrefix="0":stringPrefix="";         stringReturnDate=stringReturnDate.replace(/M+/,stringPrefix+nMonth);       }       if(stringYearFormat[0].length==2)nYear = nYear.substr(2,3);

stringReturnDate=stringReturnDate.replace(/yy+/,nYear);       return stringReturnDate;     }

function clickCalendar(day, month, year)     {        objectFormElementInMain.value = buildNLSDate(day, month, year, stringDatePattern);        window.close();     }

function todayClick()     {       var todayDate = new Date();       clickCalendar(todayDate.getDate(), todayDate.getMonth()+1, todayDate.getFullYear());     }

ns4 = (document.layers)? true:false;

function showCalendar(layerID, sField)     {       // Der Kalender wird aktiviert       layerIDGlobal = layerID ;       dateField = sField ;

if(document.getElementById)       {         // W3C compatible         if (document.getElementById(layerID).style.visibility == "visible")              document.getElementById(layerID).style.visibility = "hidden" ;         else         {           document.getElementById(layerID).style.visibility = "visible" ;           document.getElementById(layerID).style.left = parseInt(posX) ;           document.getElementById(layerID).style.top = parseInt(posY);         }       }       else if(document.layers)       {         // NN 4  compatible

if (document.layers[layerID].visibility == "visible" | document.layers[layerID].visibility == "show")             document.layers[layerID].visibility = "hide" ;         else         {           document.layers[layerID].visibility = "show" ;

document.layers[layerID].left = posX ;           document.layers[layerID].top = posY ;        }       }       else if(document.all)       {         // IE4 und  IE5 compatible         if (document.all[layerID].style.visibility == "visible") document.all[layerID].style.visibility = "hidden" ;         else         {           document.all[layerID].style.visibility = "visible" ;           document.all[layerID].style.left = parseInt(posX) ;           document.all[layerID].style.top = parseInt(posY) ;         }       }     }

function drawCalendar(cYear, cMonth)     {       //Der Kalender wird gezeichnet        var STR_ICONPATH = 'img/';       var myMonth = buildCalendar(cYear, cMonth)       var showMonth = arrayMonth[parseInt(cMonth)];       docHTML = "<table>";       docHTML = docHTML + "<tr>";       docHTML = docHTML + "<td class='cellTable'><a class='arrowTable' href='' onclick='changeCalendar(" + parseInt(cYear-1) + ", " + parseInt(cMonth) + ") ; return false ; '><<</a></td>";       docHTML = docHTML + "<td class='cellTable'><a class='arrowTable' href='' onclick='changeCalendar(" + (cMonth==0 ? parseInt(cYear-1) : parseInt(cYear)) + ", " + (cMonth==0 ? 11 : parseInt(cMonth-1)) + ") ; return false ; '><</a></td>";       docHTML = docHTML + "<td colspan='3' class='headingText'>" + showMonth + "<br>" + cYear + "</td>";       docHTML = docHTML + "<td class='cellTable'><a class='arrowTable' href='' onclick='changeCalendar(" + (cMonth==11 ? parseInt(cYear+1) : parseInt(cYear)) + ", " + (cMonth==11 ? 0 : parseInt(cMonth+1)) + ") ; return false ; '>></a></td>";       docHTML = docHTML + "<td class='cellTable'><a class='arrowTable' href='' onclick='changeCalendar(" + parseInt(cYear+1) + ", " + parseInt(cMonth) + ") ; return false ; '>>></a></td>";       docHTML = docHTML + "</tr>";       docHTML = docHTML + "<tr>";       for(w=0;w<7;w++)       {         if(w==5 || w==6)         {           docHTML = docHTML + "<td class='headingdaysweekend'>" + myMonth[0][w] + "</td>";         }         else         {           docHTML = docHTML + "<td class='headingDays'>" + myMonth[0][w] + "</td>";         }       }       docHTML = docHTML + "</tr>";       for(w=1;w<7;w++)       {         docHTML = docHTML + "<tr>";         for (d=0;d<7;d++)         {           docHTML = docHTML + "<td class='cellTable'>";           if(!isNaN(myMonth[w][d]))           {             if (d==5 || d==6)             {               docHTML = docHTML + "<a class='bodyDaysWeekend' href='' onclick='clickCalendar(" + myMonth[w][d] + ", " + parseInt(cMonth+1) + ", " + cYear + ") ; return false ; '>" + myMonth[w][d] + "</a>";             }             else             {               docHTML = docHTML + "<a class='bodyDays' href='' onclick='clickCalendar(" + myMonth[w][d] + ", " + parseInt(cMonth+1) + ", " + cYear + ") ; return false ; '>" + myMonth[w][d] + "</a>";             }           }           else {docHTML = docHTML + "<span class='bodyDays'> </span>";}           docHTML = docHTML + "</td>";         }         docHTML = docHTML + "</tr>";       }       docHTML = docHTML + "</table>";       return docHTML;     }

function buildCalendar(aYear, aMonth)     {       // Diese Funktion bestimmt eine Monats-Matrix       var tMonth = new Array();       var tDate1 = new Date(aYear, aMonth, 1);       var tDate28 = new Date(aYear, aMonth, 28);       var tDate29 = new Date(aYear, aMonth, 29);       var tDate30 = new Date(aYear, aMonth, 30);       var tDate31 = new Date(aYear, aMonth, 31);       var tFirstDay = tDate1.getDay();       var tDays = 0;       if(tDate31.getMonth() == tDate1.getMonth() ) tDays = tDate31.getDate();       else if(tDate30.getMonth() == tDate1.getMonth() ) tDays = tDate30.getDate();       else if(tDate29.getMonth() == tDate1.getMonth() ) tDays = tDate29.getDate();       else if(tDate28.getMonth() == tDate1.getMonth() ) tDays = tDate28.getDate();       var tVar = 1;

tMonth[0] = arrayDays;       tMonth[1] = new Array(7);       tMonth[2] = new Array(7);       tMonth[3] = new Array(7);       tMonth[4] = new Array(7);       tMonth[5] = new Array(7);       tMonth[6] = new Array(7);

if (tFirstDay == 0)       {         tMonth[1][6] = tVar;         tVar++;       }       else       {         for (d=tFirstDay-1; d<7; d++)         {           tMonth[1][d] = tVar;           tVar++;         }       }       for(w=2;w<7;w++)       {         for(d=0;d<7;d++)         {           if(tVar<=tDays)           {             tMonth[w][d] = tVar;             tVar++;           }         }       }       return tMonth;     }

function changeCalendar(nYear, nMonth)     {       // Monat oder Jahr des Kalenders werden geändert       if(document.getElementById)       {         // W3C compatible         drawCalendar(nYear, nMonth);         document.getElementById(layerIDGlobal).innerHTML = docHTML;       }       else if(document.layers)       {         // Netscape compatible         document.layers[layerIDGlobal].document.open();         drawCalendar(nYear, nMonth);         document.write("<div class='layerBackground'>");         document.write(docHTML);         document.write("</div>");         document.layers[layerIDGlobal].document.close();       }       else if(document.all)       {         // IE4 und  IE5 compatible         drawCalendar(nYear, nMonth);         document.all[layerIDGlobal].innerHTML = docHTML;       }     } //   function setzeTokenInHauptseite()   {     if(document.layers)     {       window.opener.document.mainForm.token.value=document.buttonDiv.document.forms[0].token.value;     }    else    {      window.opener.document.mainForm.token.value=document.forms[0].token.value;     }   }

//-->   </script> </head> <body topmargin="10" leftmargin="10" marginheight="10" marginwidth="10" rightmargin="10" onLoad="showCalendar('DatePicker','');" onUnload="window.opener.setzeFlagsVomPopUp();window.opener.loeschePopupAusArray(window.name);"> <div class="layerBackground" id="DatePicker" style="visibility: hidden; position: absolute; z-index: 10;" name="DatePicker">   <script type="text/javascript">   var currentDate = new Date() ;     arrayDays = new Array("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun");     arrayMonth = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");     drawCalendar(currentDate.getFullYear(), currentDate.getMonth());     document.write(docHTML);   </script> </div>

</body> </html>

  1. Hi!

    So lange Codes liest sich im Forum keiner durch (und auch dann würde er nicht durchblicken, weil er dein Konzept nicht kennt).
    Ich kann dir da nur eins empfehlen:
    Schlanker Sourcecode ist oft der Beste!

    Und da gibt es ja noch die Kompalibität zu anderen Browsern...
    Da gibt's keine andere Lösung als den Code gleich von Beginn an mit verschiedenen Browsern zu testen.

    Hoffe du schaffst es trotzdem!

    Marc Reichelt || http://www.marcreichelt.de/

    --
    tel.: 0049/6181/72224
    fax.: 0049/6181/740724
    Linux is like a wigmam - no windows, no gates and an Apache inside!!!
  2. mir ist nur bekannt das netscape 4 abstürzt, wenn man versucht das DIV-Tag als LAYER-Tag zu simuliern UND im DIV-Tag ein style attribut verwendet. Das hab ich selbst erfahren, steht aber auch irgendwo in SELFHTML.
    --> mit <style> die styleeigenschaften definiern
    oder
    --> das LAYER-Tag verwenden (da musst du aber mit TOP="..." und so arbeiten, also ohne style="")

    Christian