Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[PHP + Javascript] lopende klok op de pagina

Anoniem
DarkScribe
3 antwoorden
  • Op dit moment gebruik ik javascript om de huidige tijd op het scherm te toveren en die ook steeds bij te werken per seconde. In IE6 werkt het geweldig, maar met Firefox zie ik helemaal niets. Wat kan ik doen zodat ook de gebruikers met Firefox die lopende klok gaan zien? Mijn script ziet er als volgt uit:

    [code:1:15c5ac66a3]<!– Begin

    function funClock()
    {
    if (!document.layers && !document.all)
    {
    return;
    }

    var months=new Array(13);
    months[1]='januari';
    months[2]='februari';
    months[3]='maart';
    months[4]='april';
    months[5]='mei';
    months[6]='juni';
    months[7]='juli';
    months[8]='augustus';
    months[9]='september';
    months[10]='october';
    months[11]='november';
    months[12]='december';

    var day=new Array(7);
    day[0]='zondag';
    day[1]='maandag';
    day[2]='dinsdag';
    day[3]='woensdag';
    day[4]='donderdag';
    day[5]='vrijdag';
    day[6]='zaterdag';

    var runTime = new Date();
    var lmonth=months[runTime.getMonth() + 1];
    var date=runTime.getDate();
    var year=runTime.getYear();
    var today = day[runTime.getDay()];
    var hours = runTime.getHours();
    var minutes = runTime.getMinutes();
    var seconds = runTime.getSeconds();

    if (year < 2000)
    {
    year = year + 1900;
    }

    if (minutes <= 9)
    {
    minutes = '0' + minutes;
    }

    if (seconds <= 9)
    {
    seconds = '0' + seconds;
    }

    movingtime = '<b>' + today + ' ' + date + ' ' + lmonth + ' ' + year + '&nbsp;&nbsp;' + hours + ':' + minutes + ':' + seconds + '</b>';

    if (document.layers)
    {
    document.layers.clock.document.write(movingtime);
    document.layers.clock.document.close();
    }
    else
    {
    clock.innerHTML = movingtime;
    }

    setTimeout('funClock()', 1000)
    }

    window.onload = funClock;

    End –> [/code:1:15c5ac66a3]

    Is een lopende klok ook mogelijk in alleen maar PHP of kan ik vanuit javascript iedere seconde een php script aanroepen? Zo ja, hoe werkt dat dan? En gaat dat dan wel werken in Firefox?
  • Een lopende klok is een typische client-toepassing en daarom heeft php geen enkele toegevoegde waarde. Met javascript moet het gewoon mogelijk zijn. Het probleem is dat je voor Firefox andere code moet gebruiken om de layers aan te sturen dan voor IE. Daarom kun je beter een dhtml-script libary gebruiken die alle grote browsers ondersteunt, bijvoorbeeld Klayers (http://www.kruglov.ru/klayers/english/).
  • Misschien is het net zo handig om gewoon een paar regeltjes toe te voegen aan het bestaande script.

    [code:1:8128a10074]
    <script type="text/javascript">

    function funClock()
    {
    if (!document.layers && !document.all && !document.getElementById)
    {
    return;
    }

    var months=new Array(13);
    months[1]='januari';
    months[2]='februari';
    months[3]='maart';
    months[4]='april';
    months[5]='mei';
    months[6]='juni';
    months[7]='juli';
    months[8]='augustus';
    months[9]='september';
    months[10]='october';
    months[11]='november';
    months[12]='december';

    var day=new Array(7);
    day[0]='zondag';
    day[1]='maandag';
    day[2]='dinsdag';
    day[3]='woensdag';
    day[4]='donderdag';
    day[5]='vrijdag';
    day[6]='zaterdag';

    var runTime = new Date();
    var lmonth=months[runTime.getMonth() + 1];
    var date=runTime.getDate();
    var year=runTime.getYear();
    var today = day[runTime.getDay()];
    var hours = runTime.getHours();
    var minutes = runTime.getMinutes();
    var seconds = runTime.getSeconds();

    if (year < 2000)
    {
    year = year + 1900;
    }

    if (minutes <= 9)
    {
    minutes = '0' + minutes;
    }

    if (seconds <= 9)
    {
    seconds = '0' + seconds;
    }

    movingtime = '<b>' + today + ' ' + date + ' ' + lmonth + ' ' + year + '&nbsp;&nbsp;' + hours + ':' + minutes + ':' + seconds + '</b>';

    if (document.layers)
    {
    document.layers.clock.document.write(movingtime);
    document.layers.clock.document.close();
    }
    else if(document.all)
    {
    document.all['clock'].innerHTML = movingtime;
    }
    else
    {
    document.getElementById('clock').innerHTML = movingtime;
    }

    setTimeout('funClock()', 1000)
    }

    window.onload = funClock;

    </script>
    [/code:1:8128a10074]

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.