Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    457

    Chiamare una funzione javascript da una pagina jsp

    Salve a tutti ,
    dovrei risolvere un piccolo problema.
    Ho una jsp che contiene un'istruzione if per fare un controllo, se il controllo è positivo vorrei invocare una funzione javascript
    Per fare questo avevo pensato di usare javascript in questo modo:
    <%
    if (condizione)
    { se la condizione è vera, vorrei chiamare la funzione javascript "nomefunzione" e passargli una variabile
    }
    else
    {
    }
    %>

    <script type='text/javascript'>
    function nomefunzione(variabiledarecuperare)
    {
    <script>
    //Dichiaro la funzione
    function azione(variabile) {
    if(document.getElementById(variabile).style.displa y=='block') {

    document.getElementById(variabile).style.display=' none';
    }else{
    document.getElementById(variabile).style.display=' block';
    }
    }
    </script>
    }

    </script>

    Il problema è:
    Come faccio a chiamare la funzione da java senza associarla a nessun evento?
    Grazie mille.

  2. #2
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Attenzione! Magari è solo un problema di nomenclatura, ma deve esserti ben chiaro: Java NON esegue Javascript.
    Quello che fa Java sul server è produrre del codice (in parole povere, genera una stringa di testo) che verrà poi renderizzato (HTML) ed eseguito (Javascript) sul client. Ma i due linguaggi non "interagiscono" mai, anche perchè come vedi funzionano in ambienti diversi, cioè client e server.

    Ci sono vari modi per risolvere il tuo problema, ma fondamentalmente credo che le migliori soluzioni si richiamino a una sola tecnica: detto terra terra, se la condizione Java è verificata vai a scrivere una certa stringa Javascript, se non lo è non la scrivi.

    Un esempio di codice:

    codice:
    <script type="text/javascript">
    function funzione_javascript(parametro)
    {
      // TUO CODICE ...
    }
    </script>
    
    <%
      if (condizione)
      {
    %>
    funzione_javascript(parametro);
    <%
      }
    %>
    La function Javascript è sempre inserita nel codice HTML, ma il suo richiamo avverrà solo se la condizione è verificata. Attenzione che:
    - la function javascript deve essere dichiarata prima del suo utilizzo;
    - gli elementi del DOM che vai a manipolare devono essere già noti al client.

    Ti propongo altre due soluzioni:
    - invece che condizionare l'invocazione della funzione, puoi condizionare il corpo della funzione. Questa potrebbe essere una soluzione più efficiente, specie se la function è molto lunga: di fatto, l'invocazione avviene sempre, ma se la condizione è falsa l'esecuzione della funzione ritorna subito;
    - puoi sfruttare l'evento onLoad() della pagina, anche qui condizionando o l'invocazione oppure il corpo della funzione Javascript.

    P.S.: te lo dirà sicuramente LeleFT, comunque - come da regolamento - ricordati di formattare sempre il codice utilizzando il tag CODE appropriato.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    457
    mi potresti fare un modesto esempiuo di onload per risolvere il mio problema?



    codice:
    P.S.: te lo dirà sicuramente LeleFT, comunque - come da regolamento - ricordati di formattare sempre il codice utilizzando il tag CODE appropriato.
    che cosa vuol dire ?

  4. #4
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    codice:
    <%
      String onload_string = "";
    
      if (condizione)
      {
        onload_string = "funzione_javascript(parametro);"    
      }
    %>
    
    <script type="text/javascript">
    function funzione_javascript(parametro)
    {
    . . . . .
    }
    </script>
    
    . . . . .
    
    <body onload="<%= onload_string %>">
    . . . . .
    P.S.: Relativamente alla formattazione del codice, intendo dire che è disponibile il tag "CODE" (reperibile in alto, fra gli strumenti di editazione dei post) che ti permette di indentarlo e di mostrarlo in un formato più leggibile (come ho fatto poco sopra). Comunque, leggi il regolamento del forum, trovi tutto lì.

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.