View Full Version : [js]script che non va su IE, mentre su tutti gli altri sì...
Ciao, non riesco a capire perchè questo script funziona su tutti i browser tranne che su IE
function onAirNow() {
onAir = document.getElementById("onAir")
date = new Date()
d = date.getDay()
h = date.getHours()
if (d == 1)/*lunedì*/
{
if (h<8)
{
img = 'indirizzo/img.png';
onAir.style.backgroundImage = 'url('+img+')';
}
}
}
è uno script molto semplice: a seconda del giorno e dell'ora carica una immagine diversa... (naturalmente qui sopra tagliato un po'.. sono sempre gli stessi if alla fin fine)
come mai secondo voi non va?
[code]
onAir = document.getElementById("onAir")Metti
var onAir = document.getElementById("onAir")
Per motivi che adesso non mi ricordo bene (e dovrei documentarmi) nella funzione, onAir faceva già riferimento all'oggetto con ID "onAir".
Comunque è buona norma, specialmente nelle funzioni, dichiarare le variabili con var, altrimenti andrebbero a far parte dell'oggetto window, con altre eventuali conseguenze.
grazie, appena ho accesso a un computer con windows provo...
cmq mi potreste aiutare anche per un'altra cosa?
non riesco a mettere questo script in un file esterno e a farlo eseguire...
cioè.. io ho questa funzione, la metto in un file esterno .js e lo importo così come l'ho scritto sopra (come funzione) nell'header tramite questo codice:
<script type="text/javascript" src="path....onAirNow.js" language="JavaScript"></script>
ma non visualizzo niente...
se lo scrivo direttamente nell'header e uso la proprietà onLoad del body per richiamare la funzione invece parte...
come faccio?
Grazie
ma non visualizzo niente...
se lo scrivo direttamente nell'header e uso la proprietà onLoad del body per richiamare la funzione invece parte...
come faccio?Magari hai già fatto così ma preferisco precisarlo. Nel file .js va messo solo ed esclusivamente codice Javascript, non vanno messi tag html o la parte <!-- //--> per racchiudere il codice Javascript.
sì, non ho messo nessun codice html nel file js
credo cmq che il problema sia eseguire la funzione, cioè se scrivo il codice direttamente nell'header riesco ad eseguire la funzione tramite il paramentro onLoad del body
<body onLoad="javascript:onAirNow();">
se invece metto la funzione nel js esterno come la richiamo? se uso ancora l'onLoad non va.
ho anche provato a scriverla come codice normale e non come funzione, ma non va lo stesso
sono un noob ma per chiamarla non basta nome_funzione(parametri)??
AlexGatti
29-11-2007, 14:11
sì, non ho messo nessun codice html nel file js
credo cmq che il problema sia eseguire la funzione, cioè se scrivo il codice direttamente nell'header riesco ad eseguire la funzione tramite il paramentro onLoad del body
<body onLoad="javascript:onAirNow();">
se invece metto la funzione nel js esterno come la richiamo? se uso ancora l'onLoad non va.
ho anche provato a scriverla come codice normale e non come funzione, ma non va lo stesso
purtroppo ho notato anch'io questa cosa.
Ovvero se si mette una funzione in un js staccato e la si esegue all'onload a volte da errore, come se il js non venisse caricato subito.
Nel mio caso ho fatto spallucce e ho messo il codice direttamente sulla pagina (su tutte le pagine) interessata.
vabè... allora se non ci sono soluzioni risolvo facendo un'include con php e lascio l'onload nel body
grazie
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.