Henrike: ASP-Datumsvariable wird in Javascript falsch umgewandelt

Hallo!

Ich erstelle mit ASP und VML einen Kalender fuer verschiedenen Meetingrooms. Der visuelle Teil des Kalenders ist nur im Internet Explorer sichtbar, in jedem andern Browser steht dann an der Stelle: "Um diese Seite anzusehen, bitte Internet Explorer benutzen." Leider ist das nicht das Einzige was dort steht, denn auch wenn zB Firefox kein VML kann, kann es doch Textboxen und Links. So steht unter der Meldung ein Gewirr aus allen Textboxen und Links uebereinander.

Ich habe versucht, mir die die Links u.a. nur anzeigen zu lassen, wenn der IE benutzt wird, und dazu eine Zeile Javascript eingefuegt:

  
if (navigator.appName == "Microsoft Internet Explorer")  

Leider verwandelt Javascript mir dabei meine ASP-Variable period von einem ganz normalen Datum in eine voellig freie Zahl um. Ich kann mir den Effekt nicht erklaeren.

Zur Veranschaulichung etwas mehr Code:

  
Response.write "Period:" & period & "<br>"  
%>  
<script language="JavaScript">  
 var browser = navigator.appName;  
 if (browser == "Microsoft Internet Explorer"){  
  document.write("Period:" + <%=period%> + "<br>");  

Ich wuerde einen Link zur Seite posten, aber der Server hier scheint nur temporaer erreichbar zu sein...

Auf der Webseite ausgegeben wird:

Period:16/07/2007
Period:0.0011388710940280445

Eigentlich interessiert mich mehr, wie dieser Fehler zustande kommt. Falls sich keine Loesung hier findet, werde ich wohl einfach ne Browserweiche einbauen, und fuer alle anderen Browser eine andere Seite anzeigen lassen...

  1. hi,

    Auf der Webseite ausgegeben wird:

    Period:16/07/2007
    Period:0.0011388710940280445

    Eigentlich interessiert mich mehr, wie dieser Fehler zustande kommt.

    16 geteilt durch 7, nochmal geteilt durch 2007 ergibt ...?
    Aha, schau mal an.

    Wenn du Textliterale in Javascript benutzen willst, solltest du vielleicht auch die entsprechende Syntax dafür wählen - und sie nicht so aussgeben, dass sie zwangsläufig als (Rechen-)Ausdruck interpretiert werden müssen.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Vielen Dank, Wahsaga

      Nur zu Vollstaendigkeit der korrekte Code:

        
      Response.write "Period:" & period & "<br>"  
      %>  
      <script language="JavaScript">  
       var browser = navigator.appName;  
       if (browser == "Microsoft Internet Explorer"){  
       document.write("Period:" + <%=Day(period)%> + "/" + <%=Month(period)%> + "/" + <%=Year(period)%> + "<br>");  
      
      
      1. hi,

        Nur zu Vollstaendigkeit der korrekte Code:

        Warum nicht noch umständlicher?

        document.write("Period:" + <%=Day(period)%> + "/" + <%=Month(period)%> + "/" + <%=Year(period)%> + "<br>");

        Du brauchst das Datum hier nicht in Einzelteile zu zerpflücken - es reicht, wenn du es so ausgibst, dass es ein Javascript-Textliteral darstellt, und keine Anweisung oder Ausdruck mehr.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }