2011-08-23 115 views
7

如何从HTML文件中调用一个js函数,而无需事件触发器?我想有这样的代码:如何在没有事件的情况下调用js函数

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

但这只是导致函数调用被打印到屏幕上,而不是实际正在执行的功能。

例如我得到了 show_graph(bar,[[1,2000],[2,50],[3,400],[4,200],[5,5000]],['Foo']);

我该怎么办?

编辑:

我很欣赏的反馈,但我想在一个脚本标签内,并得到一个错误“参数无效号码”。

的JavaScript是:

function show_graph(charttype, data, options){ 

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

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

,所以我想真正的问题是“为什么我得到一个‘参数无效号码’错误,当我正经过3个参数,并接受3个参数?”

回答

13

敷在<script>标签:

<body> 

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

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

</body> 

...虽然我不知道在模板因素如何我想它会呈现相同的。

+0

我可以问,为什么我们在这里使用{{}}双括号? – KNU

+1

@KNU它有点晚,但有{{}}用法,你可以使用char_type,data和options变量的值。 – Prometheus

4

您需要包装在脚本标记的函数调用是这样的:

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

如果您需要验证为XHTML,你也应该用CDATA包裹。请参阅When is a CDATA section necessary within a script tag?以供参考。

3

将它放在<script>标记中。

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

3

添加脚本标记。

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

您应该在加载页面时调用该函数。要做到这一点使用jQuery使用此代码:

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

它已经位于页面的底部,所有前面的元素都可用于操作。 – user113716

4

另一个答案:

<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

对所有受访者表示赞赏:我很欣赏这个反馈,但我试图用脚本标记包装它,并得到“无效的参数数量”错误。 的JavaScript是: 功能show_graph(图图表,数据,选项){ VAR chart_options = { 系列:{ 图图表:{ 显示:真正 }} } VAR情节= $ .plot ($(“#chart1”),[data],[chart_options]); } 所以我想真正的问题是“为什么当我传递3个参数并接受3个参数时,我得到了”无效的参数个数“错误?” – Colleen

相关问题