在body标签内声明函数会导致“函数未定义”
Declare function inside the body tag leads to "Function not defined"
我在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"。我做错了什么?
下面的代码似乎可以正常工作:
<!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>
如果你收到这个错误,它可能是来自其他地方,而不是你提供的代码。
而不是在body
标记中找到脚本的正确位置,我建议使用窗口。onload,功能以及使用addEventListener()在head
标签内的script
标签内绑定事件,它应该是甚至在外部.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()
我的问题是我写了
<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>
相关文章:
- 现有函数未定义
- jQuery$.post可以在chrome、safari中工作,但不能在FF中工作(声明成功回调函数未定义)
- AngularJS ng repeat显示原型函数未定义
- jQuery onclick 函数:未定义不是一个函数
- 函数未定义
- 为什么在jsfiddle中显示ReferenceError:函数未定义
- 函数未定义,实际定义时为
- 函数未定义的Javascript(Basic)
- ajax函数未定义
- 为什么window.onload函数未定义
- 模块模式:函数未定义
- 包含的javascript源代码通过PHP,onmousemove事件,函数未定义
- 单击链接时出现函数未定义错误
- AngularJS和Angular Snap:SSnap构造函数未定义
- 在Node.js中,从同一文件中的另一个函数引用一个函数会导致'ReferenceError:-函数-未定义
- symfony trick javascript函数未定义
- 不断获取JS函数未定义错误
- AngularJS HTTP 资源 - 响应函数未定义
- 函数未定义,参数格式
- JavaScript 中的函数未定义