如何在没有事件的情况下调用JS函数

10

我怎样可以在HTML文件内不触发事件而直接调用JavaScript函数?我想要像这样的代码:

<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']);

我该怎么做呢?

编辑:

感谢反馈,但我尝试将其包装在 script 标签中,并收到“参数数量无效”的错误。

JavaScript 代码如下:

function show_graph(charttype, data, options){

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

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

所以我想真正的问题是,“当我传递了三个参数并接受了三个参数时,为什么会出现“无效数量的参数”错误?”

6个回答

15

将其放在 <script> 标签中:

<body>

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

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

</body>

虽然我不知道模板的作用,但我想它会呈现相同的效果。


我可以问一下为什么我们在这里使用双括号{{}}吗? - KNU
2
@KNU 稍微有点晚了,但是使用{{}},你可以获取char_type、data和options变量的值。 - Prometheus

6

另一个答案:

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

给所有回复者:感谢反馈,但我尝试将其包装在脚本标签中,却得到了“无效的参数数量”错误。JavaScript 代码如下:function show_graph(charttype, data, options){var chart_options = { series: { charttype: { show: true } } } var plot = $.plot($("#chart1"), [data], [chart_options]);}所以我的问题是,“为什么我传递了3个参数并接受了3个参数,但还是出现了'无效的参数数量'错误?” - Colleen

5
您需要像这样在脚本标签中包含函数调用:
<script type="text/javascript">
show_graph({{ chart_type }}, {{ data }}, {{ options }});
</script>

如果您需要验证为XHTML,您还应该使用CDATA进行包装。请参见当脚本标记中需要CDATA部分时?以获取相关参考信息。

4
在代码中添加脚本标签。
<script>
show_graph({{ chart_type }}, {{ data }}, {{ options }});
</script>

4
将其放入 <script> 标签中. <script type='text/javascript'>show_graph({{ chart_type }}, {{ data }}, {{ options }});</script>

1

当页面加载时,您应该调用该函数。使用jQuery可以使用以下代码:

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

它已经位于页面底部,因此所有前面的元素都可以进行操作。 - user113716

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接