Avatar billede 0ffline Nybegynder
21. december 2012 - 10:24 Der er 12 kommentarer og
1 løsning

Countdown - udført men med fejl på siden

Har sat en countdown på fruens website, og den virker NÆSTEN upåklageligt ...
Den tæller godt nok ned, og vises fint - men et lille træls ikon på explorer viser ' udført, men med fejl på siden' og så lige en reference til linje 40, tegn 3

*document.getElementById(...)' er null eller ikke et objekt*

Nogen som kan afhjælpe problemet?

..............................
function calcage(secs, num1, num2) {
  s = ((Math.floor(secs/num1))%num2).toString();
  if (LeadingZero && s.length < 2)
    s = "0" + s;
  return "<b>" + s + "</b>";
}

function CountBack(secs) {
  if (secs < 0) {
    document.getElementById("cntdwn").innerHTML = FinishMessage;
    return;
  }
  DisplayStr = DisplayFormat.replace(/%%D%%/g, calcage(secs,86400,100000));
  DisplayStr = DisplayStr.replace(/%%H%%/g, calcage(secs,3600,24));
  DisplayStr = DisplayStr.replace(/%%M%%/g, calcage(secs,60,60));
  DisplayStr = DisplayStr.replace(/%%S%%/g, calcage(secs,1,60));

  document.getElementById("cntdwn").innerHTML = DisplayStr;
  if (CountActive)
    setTimeout("CountBack(" + (secs+CountStepper) + ")", SetTimeOutPeriod);
}

function putspan(backcolor, forecolor) {
document.write("<span id='cntdwn' style='background-color:" + backcolor +
                "; color:" + forecolor + "'></span>");
}

if (typeof(BackColor)=="undefined")
  BackColor = "white";
if (typeof(ForeColor)=="undefined")
  ForeColor= "black";
if (typeof(TargetDate)=="undefined")
  TargetDate = "12/31/2020 5:00 AM";
if (typeof(DisplayFormat)=="undefined")
  DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
if (typeof(CountActive)=="undefined")
  CountActive = true;
if (typeof(FinishMessage)=="undefined")
  FinishMessage = "";
if (typeof(CountStepper)!="number")
  CountStepper = -1;
if (typeof(LeadingZero)=="undefined")
  LeadingZero = true;


CountStepper = Math.ceil(CountStepper);
if (CountStepper == 0)
  CountActive = false;
var SetTimeOutPeriod = (Math.abs(CountStepper)-1)*1000 + 990;
putspan(BackColor, ForeColor);
var dthen = new Date(TargetDate);
var dnow = new Date();
if(CountStepper>0)
  ddiff = new Date(dnow-dthen);
else
  ddiff = new Date(dthen-dnow);
gsecs = Math.floor(ddiff.valueOf()/1000);
CountBack(gsecs);
Avatar billede olsensweb.dk Ekspert
21. december 2012 - 11:27 #1
har du et link til siden så vi kan se den i sammenhæng ??
sammen script brev brugt i http://www.eksperten.dk/spm/973850
Avatar billede 0ffline Nybegynder
21. december 2012 - 14:18 #2
Desværre har jeg ikke link til siden, da det er et lukket CMS system. Men jeg oplever ikke de problemer som brugeren i det linkede spørgsmål omtaler.
Avatar billede 0ffline Nybegynder
21. december 2012 - 14:30 #3
HTML siden som indlæses:

        <script language="JavaScript">
            var d = new Date();
            var Weekday = d.getDay();

            switch(Weekday){
                case 1:
                    //Mandag
                    DisplayFormat = "Bestil inden <b>%%H%% timer %%M%% min %%S%% sek</b> og din ordre bliver afsendt idag.";
                    FinishMessage = "Alle ordrer <b>inden kl. 17:00</b> p&aring; hverdage bliver <b>sendt samme dag.</b>";
                    TargetTime = "17:00";
                    break;
                case 2:
                    //Tirsdag
                    DisplayFormat = "Bestil inden <b>%%H%% timer %%M%% min %%S%% sek</b> og vi sender din ordre i dag.";
                    FinishMessage = "Alle ordrer <b>inden kl. 17:00</b> p&aring; hverdage bliver <b>sendt samme dag.</b>";
                    TargetTime = "17:00";
                    break;
                case 3:
                    //Onsdag
                    DisplayFormat = "Bestil inden <b>%%H%% timer %%M%% min %%S%% sek</b> og vi sender din ordre i dag.";
                    FinishMessage = "Alle ordrer <b>inden kl. 17:00</b> p&aring; hverdage bliver <b>sendt samme dag.</b>";
                    TargetTime = "17:00";
                    break;
                case 4:
                    //Torsdag
                    DisplayFormat = "Bestil inden <b>%%H%% timer %%M%% min %%S%% sek</b> og vi sender din ordre i dag.";
                    FinishMessage = "Alle ordrer <b>inden kl. 17:00</b> p&aring; hverdage bliver <b>sendt samme dag.</b>";
                    TargetTime = "17:00";
                    break;
                case 5:
                    //Fredag
                    DisplayFormat = "Bestil inden <b>%%H%% timer %%M%% min %%S%% sek</b> og vi sender din ordre i dag.";
                    FinishMessage = "Alle ordrer <b>inden kl. 17:00</b> p&aring; hverdage bliver <b>sendt samme dag.</b>";
                    TargetTime = "17:00";
                    break;
                case 6:
                    //Lørdag
                    DisplayFormat = "Alle ordrer <b>inden kl. 17:00</b> p&aring; hverdage bliver <b>sendt samme dag.</b>";
                    FinishMessage = "Alle ordrer <b>inden kl. 17:00</b> p&aring; hverdage bliver <b>sendt samme dag.</b>";
                    TargetTime = "00:01";
                    break;
                case 0:
                    //Søndag
                    DisplayFormat = "Alle ordrer <b>inden kl. 17:00</b> p&aring; hverdage bliver <b>sendt samme dag.</b>";
                    FinishMessage = "Alle ordrer <b>inden kl. 17:00</b> p&aring; hverdage bliver <b>sendt samme dag.</b>";
                    TargetTime = "00:01";
                    break;
            }

            TargetDate = "" + (d.getMonth()+1) + "/" + d.getDate() + "/" + d.getFullYear() + " " + TargetTime + "";
            BackColor = "#FFFFFF";
            ForeColor = "#000000";
            CountActive = true;
            CountStepper = -1;
            LeadingZero = true;           
        </script>
        <script language="JavaScript" src="/js/countdown.js"></script>
Avatar billede 0ffline Nybegynder
21. december 2012 - 15:27 #4
.
Avatar billede olsensweb.dk Ekspert
21. december 2012 - 15:33 #5
og løsningen var ??
Avatar billede olsensweb.dk Ekspert
21. december 2012 - 15:36 #6
nb: er det ikke lidt letsindigt at stole på brugeren ur ??
TargetDate = "" + (d.getMonth()+1) + "/" + d.getDate() + "/" + d.getFullYear() + " " + TargetTime + "";

ovenstående skal tages fra serveren
Avatar billede olebole Juniormester
21. december 2012 - 15:43 #7
<ole>

Du kan heller ikke forvente, dit script virker med de scripttags, du bruger. Language attributten har været deprecated de seneste 13-14 år, så det er nok på tide at bruge:

<script type="text/javascript">

/mvh
</bole>
Avatar billede 0ffline Nybegynder
21. december 2012 - 15:50 #8
Hej ronols,
Er ked af hvis du har siddet og kigger dig et skeløje til i kildekode. Vil selvfølgelig gerne overdrage de udlovede points, hvis du ønsker det.

Med hensyn til at stole på brugerens ur, så ville jeg ændre dette efterfølgende ihenhold scriptets faq-side.

Løsningen står lidt hen i det uvisse. Men tror det må ligge i at 'cntdwn' indlæses sidst på siden. Men da jeg ikke kan få tilladelse til at åbne frontend i systemet, kan jeg af gode grunde ikke linke til siden - hvormed at opgaven syntes nærmest umuligt.
Avatar billede 0ffline Nybegynder
21. december 2012 - 15:52 #9
<olebole> Undskyld! :D
Avatar billede olebole Juniormester
21. december 2012 - 15:57 #10
Jeg er sådan set rystende ligeglad med, om din kode virker, så du har intet at undskylde. Af hensyn til een selv er det dog ikke videre smart at bruge forældet kode, som ikke kan forventes at virke længere  =)
Avatar billede 0ffline Nybegynder
21. december 2012 - 16:03 #11
haha olebole.. nu kan jeg kende dig igen - troede det var en blidere navnebror som huserede på eksperten for tiden.
Jeg må jo gå til bekendelse overfor fruen og sige at jeg ikke magter opgaven :)
Avatar billede olebole Juniormester
21. december 2012 - 19:43 #12
Jeg er ikke blevet blidere - ligesom du er ikke blevet klogere  *o)

Når nu, du qua tale om 'fruen', antyder, du har alderen til at være voksen, kan det godt undre, du endnu ikke evner at modtage en helt igennem saglig rettelse uden at føle dig trådt over tæerne
Avatar billede 0ffline Nybegynder
21. december 2012 - 21:08 #13
Tror du har misforstået -
Jeg føler mig ikke det mindste trådt over tæerne, men tværtimod erkender jeg jo at det er for længe siden at jeg har nørklet med hjemmesider til at jeg kan fuldføre ønskede.

Ydermere, når de ikke vil åbne frontend - så I eksperter kan granske kildekoderne ... ja, så kommer vi vel ikke nærmere en løsning.
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

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