Avatar billede lsolesen Nybegynder
29. august 2002 - 17:24 Der er 5 kommentarer og
1 løsning

Hvorfor virker dette JS ikke på ASP-side

Jeg har både ASP og almindelige HTML sider på min side. Nedenstående script virker imidlertid ikke efter hensigten. På html-siderne er der ikke nogen problemer. Der returnerer det sidst opdateret. På alle ASP-siderne returnerer den imidlertid altid dd. uanset hvornår jeg har opdateret filen?

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function makeArray()
{
  arg = makeArray.arguments;
  for (var i = 0; i < arg.length; i++)
    this[i] = arg[i];
}

daMod = document.lastModified;
if (daMod.indexOf("70") != -1)
  {
    // Hvis fildatoen er før 1-1-1970 kl. 01.00.00
    // (som hos get2net) så crasher Netscape 3.x
    // og MSIE 3.x ved brug af Date-objektet.
    // Da årstallet må være 70 - er fildatoen
    // alligevel forkert. Derfor skrives:
    document.write("Senest revideret: Ikke understøttet af serveren");
  }

daMod = Date.parse(daMod);
if (daMod <= 1000 * 60 * 60)
  {
    // Nogle browsere f.eks. Opera før v. 3.5
    // understøtter ikke Date.parse().
    // Las os blot skrive fildatoen:
    document.write("Senest revideret: " + document.lastModified);
  }
else
  {
    m = new makeArray("januar", "februar", "marts", "april", "maj",
                      "juni", "juli", "august", "september", "oktober",
                      "november", "december");
    daMod = new Date(daMod);
    document.write("Sidst opdateret: " + daMod.getDate() + ". ")
    document.write(m[daMod.getMonth()] + " ");
    year = daMod.getYear();
    year = (year < 1000) ? 1900 + year : year;
    document.writeln(year);
  }
//-->
</SCRIPT>
Avatar billede coltau Juniormester
29. august 2002 - 19:40 #1
Jeg mener at der er en naturlig forklaring på det "fænomen"

Hvis du putter dette javascript ind i en html-kode vil denne linie:
  daMod = document.lastModified;
returnere datoen for hvornår html-koden er ændret sidst.

Hvis html-koden derimod bliver genereret af en asp-kode vil samme linie returnere datoen for hvornår html-koden er dannet og det vil altid være dd.
Avatar billede lsolesen Nybegynder
29. august 2002 - 21:39 #2
Selvfølgelig. Det vil sige, at jeg ikke kan bruge en fast javascript-løsning, hvis min side skal have et reelt billede af, hvornår siderne er opdateret. Findes der ikke en javascript-kode, der kan tage filens opdateringsdato uanset om det er html eller ej?
Avatar billede coltau Juniormester
30. august 2002 - 07:03 #3
Du kan få datoen på asp-koder vhj. FSO

function GetFileDate(filespec)
  Dim fs, f, s
  Set fs = CreateObject("Scripting.FileSystemObject")
  Set f = fs.GetFile(filespec)
  GetFileDate = f.DateCreated
End function

Response.Write GetFileDate(Server.Mappath("datecreated.asp"))

Denne funktion kan vise datoen for alle asp-koder
Avatar billede lsolesen Nybegynder
30. august 2002 - 10:40 #4
Ja, men så har jeg jo et lille problem med alle mine html-sider. Jeg bruger et fast modul på alle mine sider: jf. www.vih.dk
Avatar billede coltau Juniormester
30. august 2002 - 13:09 #5
Jeg vil foreslå at du lader html-siderne være som de er og putter funktionen ind på alle asp-sider i stedet for javascriptet.
Avatar billede lsolesen Nybegynder
05. december 2002 - 14:38 #6
coltau > tak for det. Så blev jeg så klog ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester