2011-08-23 28 views
7

Come posso semplicemente chiamare una funzione js da un file html, senza trigger di evento? Io voglio avere il codice come:come chiamare la funzione js senza evento

<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> 
<script src="jquery.flot.js"></script> 
<script src="chart.js"></script> 

<title> 
</title> 
</head> 

<body> 

<div id="chart1" style="width:600px;height:300px"></div> 

show_graph({{ chart_type }}, {{ data }}, {{ options }}); 

</body> 

</html> 

ma questo solo si traduce nella chiamata di funzione in fase di stampa sullo schermo, anziché la funzione effettivamente eseguita.

ad es. Sto ricevendo show_graph (bar, [[1, 2000], [2, 50], [3, 400], [4, 200], [5, 5000]], ['Foo']);

Cosa devo fare?

EDIT:

Apprezzo le valutazioni, ma ho provato avvolgendolo in un tag script e ottenuto un "numero non valido di parametri" errore.

il javascript è:

function show_graph(charttype, data, options){ 

    var chart_options = { 
     series: { 
      charttype: { 
       show: true 
      } 
     } 
    } 

    var plot = $.plot($("#chart1"), [data], [chart_options]); 
} 

quindi suppongo che la vera domanda è "perché mi appare un 'numero non valido di parametri' quando sto passando 3 parametri e accettando 3 parametri?"

risposta

13

avvolgerla in <script> tag:

<body> 

<div id="chart1" style="width:600px;height:300px"></div> 

<script type="text/javascript"> 
    show_graph({{ chart_type }}, {{ data }}, {{ options }}); 
</script> 

</body> 

... anche se non so come i fattori del modello in immagino che renderà lo stesso..

+0

Posso chiedere perché stiamo usando {{}} doppia parentesi? – KNU

+1

@KNU è un po 'tardi, ma con l'utilizzo di {{}} puoi avere i valori di char_type, dati e variabili di opzioni. – Prometheus

4

È necessario avvolgere la chiamata di funzione nel tag di script come questo:

<script type="text/javascript"> 
show_graph({{ chart_type }}, {{ data }}, {{ options }}); 
</script> 

Se avete bisogno di convalida come XHTML si dovrebbe anche avvolgere con CDATA. Vedi When is a CDATA section necessary within a script tag? per un riferimento a questo.

3

Inserirlo in un tag <script>.

<script type='text/javascript'>show_graph({{ chart_type }}, {{ data }}, {{ options }});</script>

3

Aggiungi tag script.

<script> 
show_graph({{ chart_type }}, {{ data }}, {{ options }}); 
</script> 
0

È necessario chiamare la funzione quando la pagina viene caricata. Per farlo con jQuery utilizzare questo codice:

<script type="text/javascript"> 
    $(document).ready(function() { 
    show_graph({{ chart_type }}, {{ data }}, {{ options }}); 
    }); 
</script> 
+0

Si trova già nella parte inferiore della pagina, quindi tutti gli elementi precedenti sono disponibili per la manipolazione. – user113716

4

Ancora un'altra risposta:

<script type="text/javascript"> 
    (function() { 
     // The following code will be enclosed within an anonymous function 
     var foo = "Goodbye World!"; 
     document.write("<p>Inside our anonymous function foo means '" + foo + '".</p>'); 
    })(); // We call our anonymous function immediately 
</script> 
+0

per tutti gli intervistati: apprezzo il feedback, ma ho provato a inserirlo in un tag script e ho ricevuto un errore "numero errato di parametri". il javascript è: funzione show_graph (ChartType, dati, opzioni) {var chart_options = {serie : { ChartType: { spettacolo: true} }} var trama = $ .plot ($ ("# chart1"), [data], [chart_options]); } quindi suppongo che la vera domanda sia "perché ottengo un errore" numero errato di parametri "quando sto passando 3 parametri e accettando 3 parametri?" – Colleen

Problemi correlati