如果这已经涉及到,我们深表歉意。我已经在 StackOverflow 上搜索了一段时间,但我找不到任何可以解决我的问题的东西。很多人都有这个错误,但他们的错误似乎是由语法错误等引起的。我(也不是 JSLint)找不到任何此类错误,所以我很困惑。 以下代码(来自 W3Schools 页面)确实有效:
<p>Click the button to trigger a function that will output "Hello World" in a p element with id="demo".</p>
<button onclick="myFunction()">Click me</button>
<p id="demo"></p>
<script>
function myFunction() {
document.getElementById("demo").innerHTML = "Hello World";
}
</script>
但是,我的代码不起作用:
<head>
<!--SNIP-->
<script language="text/javascript">
function iconclicked() {
alert("Yay!");
}
</script>
</head>
<body>
<div class="icon" id="misc" onclick="iconclicked()"></div>
</body>
这会产生“Uncaught ReferenceError: iconclicked is not defined”错误。
但是,如果我错了,请纠正我,function iconclicked() {...}
是什么定义了函数并且它清楚地存在。此外,将 JScript 移动到 <body>
内标记不能解决问题,无论脚本是在 div 之前还是之后。如果您要将 div 替换为另一个元素(按钮、图像、文本等)或以不同的方式调用函数(例如通过 onload),代码将不起作用。
我想也许是我页面上的其余代码导致了一些有趣的事情发生,所以我前往 JSFIDDLE 并在其中弹出旧的 W3Schools 代码。瞧,“Uncaught ReferenceError: myFunction is not defined
”。 JSFDDLE link
编辑:原来这只是因为我没有在 JSFIDDLE 选项中选择“不换行”——感谢 Peter Healy :)
但是如果你继续将 JS 放入 <script>
</script>
JSFIDDLE 的 HTML 部分中的标记,没有这样的问题,并且代码按预期工作。 JSFIDDLE link
我想这可能是一个范围问题,但我终究无法弄清楚它具体是什么。希望有更多经验的人能给出答案!
最佳答案
没有“text/javascript”的语言,那是类型。
改变
<script language="text/javascript">
只是
<script>
不要担心语言或类型属性。语言已被弃用。
关于javascript - Uncaught ReferenceError : [functionName] is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27638106/