1

我在我的 html 的 body 标记内呈现了一个 java 脚本函数。在 java 脚本之后有一个按钮,它调用由onclick属性声明的这个函数。

<script type="text/javascript">
    function f(caller){
        console.log('test');
    }
</script>
<button onclick="f(this)" type="button">A button</button>

问题是它说“ReferenceError: f is not defined”。我究竟做错了什么?

4

3 回答 3

0

我的问题是我写的

<script type="text/javascript" src="........." />
<script type="text/javascript">
    function f(caller){
        console.log('test');
    }
</script>

但它应该带有</script>标签。

<script type="text/javascript" src="........." ></script>
<script type="text/javascript">
    function f(caller){
        console.log('test');
    }
</script>
于 2014-08-20T08:55:55.197 回答
0

以下似乎工作得很好:

<!DOCTYPE html>
<html>
<head>
    <title>Demo</title>
    <script type="text/javascript">
        function f(caller){
            console.log('test');
        }
    </script>
<body>
    <button onclick="f(this)" type="button">A button</button>
</body>
</html>

如果您收到该错误,则可能来自您提供的代码以外的其他地方。

于 2013-04-08T17:59:51.503 回答
0

body我建议不要在标签内找到脚本的正确位置,而是使用window.onload函数以及使用标签内的标签内的addEventListener ()自己绑定事件,如果它应该是,甚至在外部文件中.scripthead.js

id如果您想使用getElementById()来选择它,请给您的按钮一个,类似于:

window.onload = function () {
    var f = function(caller) {
        console.log('test');
    };

    var myButton = document.getElementById('myButton');
    myButton.addEventListener('click', function(){
        f(this);
    });
};

演示- 使用window.onload()addEventListener()


于 2013-04-08T18:00:54.073 回答