Notizie: puoi sempre seguire i nostri aggiornamenti su Twitter (@MozillaItalia) e Facebook (/MozillaItalia)

Autore Topic: Visualizzare orologio dinamico  (Letto 4330 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline donbairo

  • Post: 20
    • Portale Alibrando
Visualizzare orologio dinamico
« il: 21 Aprile 2006 14:09:06 »
Ciao a tutti
Vorrei presentare un piccolo problema che sicuramente è da attribuire a un codice che è nativo IE ma comunque lo espongo per riuscire a trovare un codice "universale" o almeno quasi.

In una pagina PHP visualizzo l'ora dinamica ovvero con un Java Script visualizzo Ore Minuti e Secondi ma con il codice della mia pagina questo viene visualizzato solo da IE e non da FF

Questo il codice

echo "<body onLoad=\"show5()\">\n"; (per far riconoscere lo script dalla pagina inserito nel tag Body)

Poi

<span id=\"liveclock\"></span>
dove voglio far apparire l'orologio

Se avete bisogno dello script completo lo posto.

Grazie
Don Bairo
^o^

Offline miki64

  • Moderatore
  • Post: 35960
Re: Visualizzare orologio dinamico
« Risposta #1 il: 21 Aprile 2006 14:16:48 »
Non so nulla di quello che ci chiedi, però dovresti:
1) inserire il codice nel tag code, terz'ultima icona a destra della barra superiore dei pulsanti, quella che ti appare quando inserisci un post;
2) postarci anche il link del sito dove ti accade questo (ovviamente, se è un sito "lecito"! ;) )
Non so se la tua discussione sia da spostare nella sezione <<Evangelizzazione>>, ma a questo ci penserà - eventualmente - un Moderatore.
Ciao.

Offline gialloporpora

  • サンドロ
  • Moderatore
  • Post: 10806
    • Il blog che non c'è
Re: Visualizzare orologio dinamico
« Risposta #2 il: 21 Aprile 2006 15:10:55 »
Guarda scopiazza questo:
http://www.gialloporpora.altervista.org
L'avevo fatto più di due anni fa e dovrei metterci mano perchè ho visto fa schifo come sito ma l'orologio funziona anche con FF
E qui c'è il codice:
http://www.gialloporpora.altervista.org/downloads/include.js

Ciao
« Ultima modifica: 21 Aprile 2006 15:27:00 da gialloporpora »

Offline donbairo

  • Post: 20
    • Portale Alibrando
Re: Visualizzare orologio dinamico
« Risposta #3 il: 21 Aprile 2006 16:14:15 »
ciao Gialloporpora
ti ringrazio è uno script carino e molto semplice e sicuramente lo adotterò perchè molto comprensibile ma devo oltremodo capire perchè non funziona l'altro.
Oggi purtroppo non posso fare altro perchè il lavoro da adesso mi impegna fino a tarda notte ma domani posto lo script e proviamo a risolvere i problemi.
Grazie infinite
Don

Offline donbairo

  • Post: 20
    • Portale Alibrando
Re: Visualizzare orologio dinamico
« Risposta #4 il: 22 Aprile 2006 15:29:32 »
Ciao a tutti
allora guardando lo script di Giallo e guardando il mio sono riuscito semplicemente a visualizzarlo però adesso vi allego lo script incriminato e quello funzionante (che praticamente è uguale a quello di giallo)

Quello che non funziona:
Codice: [Seleziona]
function show5(){
 if (!document.layers&&!document.all)
 return
 var Digital=new Date()
 var hours=Digital.getHours()
 var minutes=Digital.getMinutes()
 var seconds=Digital.getSeconds()
  if (hours==0)
 hours=00
 if (minutes<=9)
 minutes="0"+minutes
 if (seconds<=9)
 seconds="0"+seconds
//change font size here to your desire
myclock=" "+hours+":"+minutes+":"
 +seconds+" "
if (document.layers){
document.layers.liveclock.document.write(myclock)
document.layers.liveclock.document.close()
}
else if (document.all)
liveclock.innerHTML=myclock
setTimeout("show5()",1000)
 }

adesso quello che funziona:

Codice: [Seleziona]
function show5(){
 var Digital=new Date()
 var hours=Digital.getHours()
 var minutes=Digital.getMinutes()
 var seconds=Digital.getSeconds()
  if (hours==0)
 hours=00
 if (minutes<=9)
 minutes="0"+minutes
 if (seconds<=9)
 seconds="0"+seconds
myclock=" "+hours+":"+minutes+":" +seconds+" "
liveclock.innerHTML=myclock
setTimeout("show5()",1000)
 }

Come vedete è stato sufficente eliminare le condizioni ma adesso vorrei sapere perchè queste condizioni sono implementate da IE e non da FF

Grazie e saluti
Grazie giallo

Don
^o^

Offline donbairo

  • Post: 20
    • Portale Alibrando
Re: Visualizzare orologio dinamico
« Risposta #5 il: 22 Aprile 2006 15:32:49 »
Scusate
mi ero praticamente dimenticato di dire:
Cosa fanno queste condizioni?
perchè altrimenti credete che sono preparatissimo e invece sono solo uno smanettatore
Grazie
Don

Offline donbairo

  • Post: 20
    • Portale Alibrando
Re: Visualizzare orologio dinamico
« Risposta #6 il: 22 Aprile 2006 16:08:53 »
Ancora una piccola cosa:
adesso si visualizza ma la consolle Java di FF mi segnala questo avvertimento:

Avviso: Elemento referenziato per ID/NAME a livello globale. Si dovrebbe invece utilizzare il document.getElementById(), standard W3C.

Ora considerando che questo avviso lo genera ogni secondo che cambia forse sarabbe preferibile standardizzare il tutto sulla specifica W3C ma per questo credo (ne sono certo) di aver bisogno di aiuto.

Grazie millemila
Don

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: Visualizzare orologio dinamico
« Risposta #7 il: 23 Aprile 2006 01:10:09 »
Detto in poche parole, IE usa un metodo suo (non standard) per accedere agli elementi del document, questo metodo è "document.all". Le vecchie versioni di Netscape usavano un altro metodo non standard, "document.layers".
Se tu scrivi

if (!document.layers&&!document.all)
return

è come se dicessi, "Se questo browser non supporta nè document.all nè document.layers" esci, ed ecco perchè con questa condizione non ti funzionava su Firefox, perché Firefox usa solo il metodo standard e di fatto ormai crossbrowser, che è document.getElementById (non è esattamente al 100% così, ma ai fini di questa discussione è esatto).
Come funziona questo metodo? Per questo ti invito a cercare sul web, troverai un sacco di documentazione. Non prenderla come poca disponibilità, ma questo forum è di supporto ai prodotti Mozilla non alla scrittura html/javascript.
In breve però sappi che se , per esempio, dai l'attributo id="prova" ad un elemento, lo puoi poi individuare dal javascript con document.getElementById("prova").
Nel caso del tuo script, bisognerebbe vedere tutto il codice della pagina per adattarlo ... ma con queste indicazioni sono sicuro che uno "smanettatore" ci riesce :-)
Ciao, Paolo
« Ultima modifica: 23 Aprile 2006 01:11:50 da klades »

Offline donbairo

  • Post: 20
    • Portale Alibrando
Re: Visualizzare orologio dinamico
« Risposta #8 il: 23 Aprile 2006 10:22:10 »
Ma si, è anche tutto molto semplice

grazie grazie

DonBairo
^o^

Offline donbairo

  • Post: 20
    • Portale Alibrando
Re: Visualizzare orologio dinamico
« Risposta #9 il: 24 Aprile 2006 14:53:18 »
Ciao a tutti
visto che ho trovato la soluzione per rendere lo script compatibile con i vari browser la riporto precisando che sono andato avanti a tentativi e guardando e spulciando quà e là ma credo che un
piccolo detto lucchese  non sia in questo caso e credo in molti altri, fuori luogo:

Non si nasce imparati.

per tutti gli interessati posto lo script definitivo:

Codice: [Seleziona]
function dinamico(){
 var Digital=new Date()
 var ore=Digital.getHours()
 var minuti=Digital.getMinutes()
 var secondi=Digital.getSeconds()
 if (ore==0)
 ore=00
 if (minuti<=9)
 minuti="0"+minuti
 if (secondi<=9)
 secondi="0"+secondi
orologio=" "+ore+":"+minuti+":" +secondi+" "
if (document.layers){
document.layers.liveclock.document.write(orologio)
document.layers.liveclock.document.close()
}
else if (document.all)
liveclock.innerHTML=orologio
else if(document.getElementById){
document.getElementById("liveclock").innerHTML=orologio
}
setTimeout("dinamico()",1000)
}

sulla pagina si ottiene in questo modo:

inserire nel body tag questo:

Codice: [Seleziona]
<body onLoad="dinamico()">

in caso di pagina PHP (come nel mio caso):

Codice: [Seleziona]
echo "<body onLoad=\"dinamico()\">\n";

Poi si fa apparire nel punto della pagina che interessa con il tag DIV o SPAN precisando che il tag DIV genera un accapo e lo SPAN no quindi per piccole cose come questo è preferibile (dal mio punto di vista) SPAN:

Codice: [Seleziona]
<span id="liveclock"></span>

se inserito in pagina PHP è necessario:

Codice: [Seleziona]
echo"<span id=\"liveclock\"></span>\n";

Questo è tutto spero di essere stato esauriente.

Saluti

DonBairo
^o^

0 Utenti e 1 Visitatore stanno visualizzando questo topic.