Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Orologio dinamico

  1. #1
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870

    Orologio dinamico

    Ciao, questo code è un orologio dinamico con l'indicazione della data; lo script funziona bene solo che non rimane fisso sullo schermo ma appare dopo qualche secondo sostituendosi al testo della pagina dove l'ho inserito, è possibile renderlo fisso?
    codice:
    <BODY>
    
    <div align="center">
    <font face="Verdana" size="1" color="#0000FF">[b]
    <span id="clock">
    
    <SCRIPT LANGUAGE="JavaScript">
    
    <!-- Begin
    var dayarray=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
    var montharray=new Array("January","February","March","April","May","June","July","August","September","October","November","December")
    function getthedate(){
    var mydate=new Date()
    var year=mydate.getYear()
    if (year < 1000)
    year+=1900
    var day=mydate.getDay()
    var month=mydate.getMonth()
    var daym=mydate.getDate()
    if (daym<10)
    daym="0"+daym
    var hours=mydate.getHours()
    var minutes=mydate.getMinutes()
    var seconds=mydate.getSeconds()
    var dn="AM"
    if (hours>=12)
    dn="PM"
    if (hours>12){
    hours=hours-12
    }
    {
     d = new Date();
     Time24H = new Date();
     Time24H.setTime(d.getTime() + (d.getTimezoneOffset()*60000) + 3600000);
     InternetTime = Math.round((Time24H.getHours()*60+Time24H.getMinutes()) / 1.44);
     if (InternetTime < 10) InternetTime = '00'+InternetTime;
     else if (InternetTime < 100) InternetTime = '0'+InternetTime;
    }
    if (hours==0)
    hours=12
    if (minutes<=9)
    minutes="0"+minutes
    if (seconds<=9)
    seconds="0"+seconds
    //change font size here
    var cdate=dayarray[day]+", "+montharray[month]+" "+daym+" "+year+" | "+hours+":"+minutes+":"+seconds+" "+dn+" | @"+InternetTime+""
    if (document.all)
    document.all.clock.innerHTML=cdate
    else if (document.getElementById)
    document.getElementById("clock").innerHTML=cdate
    else
    document.write(cdate)
    }
    if (!document.all&&!document.getElementById)
    getthedate()
    function goforit(){
    if (document.all||document.getElementById)
    setInterval("getthedate()",1000)
    }
    window.onload=goforit
    //  End -->
    </script>

  2. #2
    A parer mio è l'effetto del document.write() che ti cancella il contenuto e lo sostituisce con quello dell'orario; anche per questo invece di scrivere document.write(), prova a scrivere window.clock.innerHTML: in questo modo anche i browser che non supportano il DOM dovrebbero essere compatibili.

  3. #3
    Utente di HTML.it L'avatar di Luis33
    Registrato dal
    May 2003
    Messaggi
    975
    :master:
    ... Sono graditi codes, esempi pratici, suggerimenti, consigli e critiche...
    "Ai posteri l'ardua sentenza..."
    Tante grazie
    Saluti
    Luis 33

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Originariamente inviato da smal
    A parer mio è l'effetto del document.write() che ti cancella il contenuto e lo sostituisce con quello dell'orario; anche per questo invece di scrivere document.write(), prova a scrivere window.clock.innerHTML: in questo modo anche i browser che non supportano il DOM dovrebbero essere compatibili.
    No! il document.write in quel codice non viene mai usato (cioe` viene usato una volta sola se il browser non e` ne` IE ne` DOM-compliant - in pratica solo NN4);
    In quel caso, dato che si tratta di una scrittura durante il montaggio della pagina, il document.write si puo` usare (salvo XHTML Strict).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Originariamente inviato da Mich_
    No! il document.write in quel codice non viene mai usato (cioe` viene usato una volta sola se il browser non e` ne` IE ne` DOM-compliant - in pratica solo NN4);
    In quel caso, dato che si tratta di una scrittura durante il montaggio della pagina, il document.write si puo` usare (salvo XHTML Strict).
    Questo è vero, ma resta il fatto che l'effetto della sostituzione del testo è del document.write(). Cioè mi spiego meglio, è il document.write() che quando va a scrivere qualcosa sostituisce il contenuto di quell'area con quello di una o più varibili. O mi sbaglio?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Originariamente inviato da smal
    Questo è vero, ma resta il fatto che l'effetto della sostituzione del testo è del document.write(). Cioè mi spiego meglio, è il document.write() che quando va a scrivere qualcosa sostituisce il contenuto di quell'area con quello di una o più varibili. O mi sbaglio?
    Nel caso specifico il document.write non viene usato (e` in un ramo dell'if da cui non dovrebbe passare).

    Comunque il document.write() sostituisce tutto il codice di una pagina che e` gia` chiusa (cioe` in cui c'e` gia` il </body> o </html>); in una pagina in costruzione si puo` usarlo.

    Riguardo al quesito di fraude: io ho controllato lo script, e non mi pare che dovrebbe dare quel problema.
    Eventualmente potrebbe apparire un secondo dopo la fine del caricamento della pagina.

    Prova ad aggiungere dopo lo script:
    attesa data
    </span>


    In pratica devi scrivere quacosa dentro lo span, prima che parta lo script, in modo che poi possa eessere sostituito.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Ah ecco; ora ho capito tutto. Sono sempre lo stesso ignorante! Non imparo mai!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.