Ciao a tutti
C'è un modo per sapere se un tag <SCRIPT> punta a un file inesistente o che comunque non è possibile aprire?
Non posso usare le richieste HTTP perchè l'applicazione funziona in locale.
Ciao a tutti
C'è un modo per sapere se un tag <SCRIPT> punta a un file inesistente o che comunque non è possibile aprire?
Non posso usare le richieste HTTP perchè l'applicazione funziona in locale.
se sai cosa c'e' dentro prova a verificare (con typeof, try/catch) in un momento successivo la presenza di una variabile, un oggetto, un metodo che sai accessibile in quel momento
Grazie per la risposta.
Il problema è che si tratta di file scritti dall'utente e non so a priori cosa contengono.
Potrei imporre di definire una variabile, oppure potrei decidere che se uno sbaglia sono affari suoi, ma se ci fosse un modo per verificare che il file è incluso mi sentirei meglio...
Penso che tu possa associare un evento onerror al tag script.
Ciao, grazie anche a te per la risposta.
Credo che solo window abbia l'evento onerror, e purtroppo non sembra essere attivato in questo caso... almeno, il seguente codice provato con Firefox non funziona. Come vedi ho provato sia con window sia con l'elemento script.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script>
function init()
{
window.onerror = function() { alert("window.onerror"); };
tag = document.createElement("script");
tag.setAttribute("type", "text/javascript");
tag.setAttribute("src", "io_non_esisto");
tag.setAttribute("id", "test");
tag.onerror = function() { alert("ciao, io sono un errore!"); };
document.getElementsByTagName("head")[0].appendChild(tag);
}
</script>
</head>
<body onload="init()">
Vediamo che succede...
</p>
</body>
</html>
Hai ragione, non ce l'ha o perlomeno non è implementato da tutti i browser.
Guarda questa discussione su stackoverflow: http://stackoverflow.com/questions/5...failed-to-load
Grazie mille! Stack Overflow è una risorsa eccezionale, ma io non riesco mai a trovarci ciò che cerco...
A quanto leggo lì, le specifiche HTML5 impongono che venga generato un errore, ma ancora ciò non avviene nei browser, mi pare.
Non sapevo che <script> avesse un evento onload; usarlo per impostare una variabile (che non verrà impostata se il caricamento fallisce) mi sembra un'ottima soluzione, se non mi sentite più vuol dire che funziona![]()