javascript - Uncaught ReferenceError : [functionName] is not defined

标签 javascript html

如果这已经涉及到,我们深表歉意。我已经在 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/

相关文章:

javascript - dojo 的 event.preventDefault() 在 dojo 1.8 版本上不起作用

javascript - 使用 javascript 查找下一个查询选择器匹配

java - gwt 使用jquery 效果可能吗?

javascript - 如何放弃单击按钮时的表单更改?

javascript - 使用动态键和值动态创建 JSON

javascript - 当 mp4 是唯一来源时,自定义 HTML5 视频控件不起作用

javascript - 使用 extract-text-webpack-plugin 和在 HTML header 中链接合并的 CSS 文件有什么区别?

不需要 HTML 5 或 Flash 的 JavaScript 声音库

html - CSS:导航元素跳到新行

html - 如何让我去 anchor 的时候URL不加#和ID