Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Sapere se <script> punta a un file inesistente

    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.

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    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

  3. #3
    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...

  4. #4
    Penso che tu possa associare un evento onerror al tag script.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  5. #5
    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>

  6. #6
    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
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  7. #7
    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

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 © 2025 vBulletin Solutions, Inc. All rights reserved.