2011-08-23 590 views
7

¿Cómo puedo simplemente llamar a una función js desde dentro de un archivo html, sin desencadenante de evento? Quiero tener un código como:cómo llamar a la función js sin 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> 

pero esto da lugar a la llamada a la función que se está imprimiendo a la pantalla, en lugar de la función en realidad se está ejecutando.

p. Ej. Obtengo show_graph (bar, [[1, 2000], [2, 50], [3, 400], [4, 200], [5, 5000]], ['Foo']);

¿Qué debo hacer?

EDIT:

aprecio las votaciones, pero traté de envolverlo en una etiqueta de script y consiguió un "número de parámetros no válido" error.

el Javascript es:

function show_graph(charttype, data, options){ 

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

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

así que supongo que la verdadera pregunta es "¿por qué recibo un 'número de parámetros no válido' error cuando paso 3 parámetros y aceptar 3 parámetros?"

Respuesta

13

envolverlo en <script> etiquetas:

<body> 

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

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

</body> 

... aunque no sé cómo los factores plantilla en lo imaginan va a proporcionar la misma..

+0

¿Puedo preguntar por qué estamos usando {{}} doble paréntesis aquí? – KNU

+1

@KNU es un poco tarde, pero con {{}} uso, puede tener los valores de char_type, datos y variables de opciones. – Prometheus

4

Necesitas envolver la llamada a la función de etiquetas de script como este:

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

Si necesita validar como XHTML también se debe envolver con CDATA. Ver When is a CDATA section necessary within a script tag? para una referencia a eso.

3

Póngalo en una etiqueta <script>.

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

3

Añadir etiquetas script.

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

Debe llamar a la función cuando se carga la página. Para hacerlo con jQuery utilizar este código:

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

Ya se encuentra en la parte inferior de la página, por lo que todos los elementos anteriores están disponibles para su manipulación. – user113716

4

Sin embargo, otra respuesta:

<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

a todos los encuestados: agradezco los comentarios, pero traté de envolverlo en una etiqueta de script y obtuve un error de "número de parámetros no válidos". el Javascript es: función show_graph (ChartType, datos, opciones) { chart_options var = { serie: { tipodiagrama: { espectáculo: verdadero }} } parcela var = $ .PLOT ($ ("# chart1"), [data], [chart_options]); } así que supongo que la verdadera pregunta es "¿por qué me sale un error de" número inválido de parámetros "cuando paso 3 parámetros y acepto 3 parámetros?" – Colleen

Cuestiones relacionadas