Avatar billede rejx Nybegynder
11. januar 2007 - 16:24 Der er 6 kommentarer og
1 løsning

Send videre hvis dato er overskrevet

Hej, kan det lade sig gøre at lave følgende

En .js fil der skal includeres i en html fil (index.html) som hvis en given dato er overskredet redirecter til en anden side (udlobet.html).

Det skal ikke kunne alt muligt fansy bare denne simple ting. Også skal det virke fra en cd.

\\ Rune
Avatar billede crazysnap Seniormester
12. januar 2007 - 00:08 #1
Hej rejx,

Nedenstående side og script gør som du ønsker:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>lukke parent demo</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <script type="text/JavaScript">
            function CheckDate(compareDate, redirectURL)
            {
                var strDay = compareDate.substring(0, 2);
                var strMonth = compareDate.substring(3, 5);
                var strYear = compareDate.substring(6);
           
                var cmpDate = new Date(strMonth + "/" + strDay + "/" + strYear);
               
                var dateNow = new Date();
               
                if(dateNow > cmpDate)
                    window.location = redirectURL;
            }
       
        </script>
    </head>
    <body onload="CheckDate('11-01-2007', 'http://www.google.com');">
        this is a test
    </body>
</html>


Når siden loades køres CheckDate metoden som har udløbsdatoen og redirect siden som parameter. Det betyder du bare kan isolere scriptet i en js fil og kalde CheckDate metoden fra html siden med de retmæssige parametre, uden at skulle ændre i filen. Så hvis js filen ser sådan ud:

function CheckDate(compareDate, redirectURL)
{
    var strDay = compareDate.substring(0, 2);
    var strMonth = compareDate.substring(3, 5);
    var strYear = compareDate.substring(6);
           
    var cmpDate = new Date(strMonth + "/" + strDay + "/" + strYear);
               
    var dateNow = new Date();
               
    if(dateNow > cmpDate)
        window.location = redirectURL;
}


Og html filen ser sådan ud:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>lukke parent demo</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <script type="text/JavaScript" src="./CheckDate.js"></script>
    </head>
    <body onload="CheckDate('11-01-2007', 'http://www.google.com');">
        this is a test
    </body>
</html>


Burde det hele virke efter hensigten. :)
Håber det var det du søgte!


Mvh.

- Snap
Avatar billede rejx Nybegynder
18. januar 2007 - 13:04 #2
Hej, undskyld ventetiden, men kan det lade sig gøre at ligge udløbsdatoen ind i .js filen isteddet for?
Avatar billede crazysnap Seniormester
18. januar 2007 - 13:10 #3
Hej rejx (og no problem),


Det kan det da sagtens, så hvis .js filen ædnres fra:

function CheckDate(compareDate, redirectURL)
{
    var strDay = compareDate.substring(0, 2);
    var strMonth = compareDate.substring(3, 5);
    var strYear = compareDate.substring(6);
           
    var cmpDate = new Date(strMonth + "/" + strDay + "/" + strYear);
               
    var dateNow = new Date();
               
    if(dateNow > cmpDate)
        window.location = redirectURL;
}


og til:


//Udløbs dato
var compareDate = "11-01-2007";

function CheckDate(redirectURL)
{
    var strDay = compareDate.substring(0, 2);
    var strMonth = compareDate.substring(3, 5);
    var strYear = compareDate.substring(6);
           
    var cmpDate = new Date(strMonth + "/" + strDay + "/" + strYear);
               
    var dateNow = new Date();
               
    if(dateNow > cmpDate)
        window.location = redirectURL;
}


og body'en ændres fra:

<body onload="CheckDate('11-01-2007', 'http://www.google.com');">


til:

<body onload="CheckDate('http://www.google.com');">


Burde det virke fint! :)


Mvh.

- Snap
Avatar billede rejx Nybegynder
18. januar 2007 - 13:13 #4
mange tak, for det hurtige svar... det er bare super... her har du points :)
Avatar billede crazysnap Seniormester
18. januar 2007 - 13:16 #5
Det var da så lidt!  :) Skriv endelig hvis der er mangler...


Tak for pointene og held og lykke med det!


Mvh.

- Snap
Avatar billede rejx Nybegynder
22. januar 2007 - 11:56 #6
Hej igen, håber lige jeg kan nå et enkelt spørgsmål mere... når man bruger den i IE 7 så blokere den scriptet og siger ActiveX ikke er tilladt... kan man omgå dette?
Avatar billede crazysnap Seniormester
22. januar 2007 - 13:54 #7
Hej rejx,

Det er kun noget som sker lokalt som en sikkerheds-foranstaltning. IE opfatter javascript som ActiveX når siden køres lokalt (dvs når du tester siden på computeren internet siden ligger på). Man kan dog bare klikke på baren der popper op og tillade scriptet.
Når din side på et tidspunkt publiceres burde IE ikke blokere scriptet (dvs. når din side kommer over på serveren og er tilgængelig for os alle). :)

Så jeg vil sådan set ikke anbefale dig at gøre noget ved det, men irriterer det dig for meget kan du jo tilføje et lille hack som i de fleste tilfælde gør at sikkerhedsbaren ikke dukker op (fjern dog hacket igen når siden publiceres).

Sæt nedenstående linje ind på siden direkte efter <html> tag'en. 


<!-- saved from url=(0014)about:internet -->


Dvs. sådan her:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- saved from url=(0014)about:internet -->
    <head>
        <title>lukke parent demo</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <script type="text/JavaScript" src="./CheckDate.js"></script>
    </head>
    <body onload="CheckDate('http://www.google.com');">
        this is a test
    </body>
</html>


Håber det var svaret du søgte! :)


Mvh.

- Snap
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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