Avatar billede dugi Nybegynder
21. februar 2005 - 17:07 Der er 9 kommentarer

id'et findes men, 'has no properties'

Hej,

Jeg har siddet og prøvet at baske en online counter sammen, men når jeg vil have den udskrevet i en td via et id, siger den id'et "has no properties" selvom det findes.

Hvad kan det skyldes?
Her er min kode:

function OnlineTimer()
{
  var online_hours  = document.getElementById('online_hours').value;
  var online_minutes = document.getElementById('online_minutes').value;
  var online_seconds = document.getElementById('online_seconds').value;

  function RunTimer()
  {
    online_seconds++;
    if(online_seconds == 60)
    {
      online_seconds = 0;
      online_minutes++;
    }
    if(online_minutes == 60)
    {
      online_minutes = 0;
        online_hours++;
    }

    MakeTimer(online_hours, online_minutes, online_seconds);
    window.setTimeout('RunTimer()',1000);
  }

  function MakeTimer(hours, minutes, seconds)
  {
    if (seconds < 10 && seconds != 00)
    {
      seconds = "0"+seconds;
    }
    if (minutes < 10 && minutes != 00)
    {
      minutes = "0"+minutes;
    }
    if (hours < 10 && hours != 00)
    {
      hours = "0"+hours;
    }

    var doneTime = ''+hours+':'+minutes+':'+seconds+'';
    document.getElementById('showOnlineTime').innerHTML = doneTime;
  }

  RunTimer();
}


På forhånd tak og forsat god aften :)

MVH
Morten
Avatar billede roenving Novice
21. februar 2005 - 17:17 #1
Hvorfor ikke bare:

<script type="text/javascript">
function time(){
  var t = new Date();
  var tekst = twoDigits(t.getHours()) + ":" + twoDigits(t.getMinutes()) + ":" + twoDigits(t.getSeconds());
  document.getElementById('visTid').innerHTML = tekst;
}
function twoDigits(num){
  return (num<10)?"0"+num:num;
}
window.onload = function(){time();setInterval('time()',1000)}
</script>

<span id="visTid">Tid</span>
Avatar billede dugi Nybegynder
21. februar 2005 - 17:19 #2
fordi den skal tælle bruges online tid :)
Ikke bare et alm. ur.

Når en bruger logger ind, blir bruges tidpunkt logget og for hver side visning, har jeg lavet en PHP kode som regner tid, minutter og sekunder ud og smider dem i 3 forskellige input felter.

Disse input felter blir hentet i gennem JS, som så skal få timeren til at gå?
Forstår du, eller snakker jeg sort? :D
Avatar billede roenving Novice
21. februar 2005 - 17:24 #3
Er siden statisk efter login, eller skal det følge ham rundt ?-)
Avatar billede dugi Nybegynder
21. februar 2005 - 17:28 #4
Yes, der sker ikke mere efter det.
Kun den som skal tælle.

Når der så blir lavet en ny sidevisning, regner min kode den nye tid ud hvor JS funktionen skal fortsætte fra.
Avatar billede roenving Novice
21. februar 2005 - 18:18 #5
Oki, så f.eks. sådan, hvor du skal sætte start-tidspunktet i dine felter:

<script type="text/javascript">
  var start;

function time(){
  var t = new Date(new Date().getTime() - start.getTime());
  var tekst = twoDigits(t.getUTCHours()) + ":" + twoDigits(t.getMinutes()) + ":" + twoDigits(t.getSeconds());
  document.getElementById('visTid').innerHTML = tekst;
}
function twoDigits(num){
  return (num<10)?"0"+num:num;
}
window.onload = function(){
  var online_hours  = +document.getElementById('online_hours').innerHTML;
  var online_minutes = +document.getElementById('online_minutes').innerHTML;
  var online_seconds = +document.getElementById('online_seconds').innerHTML;
  start = new Date();
  start = new Date(start.getFullYear(),start.getMonth(),start.getDate(),online_hours,online_minutes,online_seconds);
  time();
  setInterval('time()',1000)
}
</script>

<span id="visTid">Tid</span>
<br><br>Bare til at teste med !-)
<br><br>
<span id="online_hours">18</span>
<span id="online_minutes">01</span>
<span id="online_seconds">23</span>

-- og jeg har for nemheds skyld smidt det i nogle spans, men du kan bare rette tilbage til .value i stedet for .innerHTML ...
Avatar billede dugi Nybegynder
21. februar 2005 - 21:45 #6
Fandt ud af hvorfor den ikke udskrev.
Kaldte funktionen før id'et blev lavet - dum fejl.


Men der er opstået endnu et problem, den udskriver det helt underligt, og jeg forstår ikke hvorfor:

Online tid:
00":17":NaN
Avatar billede roenving Novice
22. februar 2005 - 00:59 #7
NaN betyder: Not a Number ...

-- så på et eller andet tidspunkt prøver du at udføre en tal-operation på (sandsynligvis !-) en tekststreng ...
Avatar billede dugi Nybegynder
22. februar 2005 - 15:57 #8
AH!
Ja det har jeg fået fixet nu, men nu vil den ikke udfører setTimeOut :s
IHHHHHH
Avatar billede roenving Novice
22. februar 2005 - 16:48 #9
setTimeout !-)
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