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

    [JS] Controllo esistenza funzione

    Ciao a tutti,
    c'è modo di controllare se un funzione JavaScript esiste oppure no?

    Del tipo: se miafunzione() esiste, allora esegui ...



    Grazie a tutti coloro che vorranno spendere qualche istante della loro vita qui

  2. #2
    vorrei sbagliarmi, ma non credo sia possibile.
    l'invocazione di una funzione non definita solleverebbe un errore di sintassi che, per quello che ne so, non è gestibile dal programmatore.

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Forse si puo` fare.

    Io proverei:
    if(miafunzione) miafunzione();
    oppure:
    if(miafunzione != 'undefined') miafunzione(); // non so se ci vanno gli apici

    infatti la funzione e` un oggetto della pagina, e come tale si puo` testarne l'esistenza.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    così funziona con IE e Firefox
    codice:
    if(self.miaFunzione) miaFunzione();

    E' molto utile quando, da una finestra di popup si vuol dare un comando alla finestra chiamante


    if(chiamante.miaFunzione) chiamante.miaFunzione();

    dove chiamante può essere self od opener...

    Pietro

  5. #5
    Uffi nessuno dei modi che mi avete consigliato funge

    Il mio problema sta nel fatto che devo richiamare da un altro sito una libreria JS, quindi dovrei fare in modo che la pagina richiami una determinata funzione solo quando la libreria è stata caricata!

    Su Firefox non ci sono problemi perchè esegue le funzioni solo quando tutta la pagina è caricata...ma su ie ci sono problemi perchè cerca di eseguire le funzioni anche senza aspettare il caricamento, e quindi va tutto a monte!


    Come fare?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    ma come hai impostato la pagina?

    Non dovrebbe succedere quello che descrivi. Le funzioni vengon caricate prima della pagina (se sono correttamente inserite in uno script della head)

    Comunque puoi mettere una variabile che viene messa a true solo se il file esterno e` completo:

    <script type="text/javascript">
    var caricate=false;
    </script>
    <script type="text/javascript" src="....">&amp;nbsp;</script>

    //... lo script esterno finisce con:
    caricate=true;
    //...
    <head>
    <body ...>
    ...
    <a ... onclick="if(caricate) miafunzione();">
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Originariamente inviato da Mich_

    Comunque puoi mettere una variabile che viene messa a true solo se il file esterno e` completo:
    Ottimometodo se non fosse che non ho accesso al file esterno che viene scaricato!

    Possibile che non esiste altro modo??

  8. #8
    Ciao a tutti,

    Anche se con cirtca 5 anni di ritardo(!) ecco la risposta:

    if (typeof nomeFunzione== 'function' ) {nomeFunzione()}

    Spero che sia utile a qualcuno.

    Ciao
    Creative Chaos We(b) Design
    www.creativechaos.it

  9. #9
    E' servita a me, dopo altri 5 anni XD
    Grazie

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.