Chrome 声称简单函数未定义

2024-03-08

我在空闲时间制作了一个莫尔斯电码翻译器,并且第一次在 Chrome 中尝试了它。当。。。的时候translate()函数被调用,Chrome 抛出异常Uncaught TypeError: translate is not a function at HTMLInputElement.onclick (morse:28)在我脸上。其他功能按预期工作,并且translate()可以毫无问题地从控制台调用。此外,它在 Firefox 中也能完美运行。

相关(我认为)HTML:

<div id="mainspan">

    <form id="morseForm">
        <textarea id="morseInput" rows="8" cols="50"></textarea><br><br>

        <input type="radio" name="trans" id="mtt" value="morseToText"><label for="mtt">Morse &rarr; text</label><br>
        <input type="radio" name="trans" id="ttm" value="testToMorse"><label for="ttm">Text &rarr; morse</label><br>
        <input type="button" onclick="translate()" value="Translate"><br><br>

        <textarea id="morseOutput" rows="8" cols="50"></textarea><br>
    </form>

</div>

还有JS:

function translate() {
    if (document.getElementById("mtt").checked == true) {morseToText()};
    if (document.getElementById("ttm").checked == true) {textToMorse()};
}

这可能是 Chrome 的“不需要的功能”,translate似乎有一些“特殊含义”事件,尽管它通常是未定义的

<script>
  function translate () {
    alert('or nah');
  }
</script>
<button onclick="translate()">
  translate!
</button>

然而,不起作用,

<script>
  function translate () {
    alert('or nah');
  }
  window.onload = function() {
    document.querySelector('button').addEventListener('click', translate);
  }
</script>
<button>
  translate!
</button>

工作原理 - 本质上是相同的,但显然不是

最简单的解决方案

  1. 使用 addEventListener 方法将单击事件添加到按钮,或者
  2. 不要使用这个名字translate
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Chrome 声称简单函数未定义 的相关文章