This question already has an answer here:
Chrome claims simple function is undefined

(1个答案)


去年关闭。




这应该非常简单,尝试编写一个函数,单击按钮即可更改html元素的文本值。使用Chrome时,问题是我不断点击translate is not a function,似乎无法访问我的功能,但是,在其他浏览器上,它按预期运行。为什么?

<html lang="en">

<head>
  <title>The HTML5 Herald</title>
  <meta charset="utf-8">
  <meta name="description" content="The HTML5 Herald">
  <meta name="author" content="SitePoint">
  <style src="./src/moshestyles.css"></style>
</head>

<body>
  <h1 id="title"></h1>
  <button onclick="translate('english')"> English </button>
  <button> Hebrew </button>
  <button> Spanish </button>
  <script>
    function translate(language) {
      let myTitle = document.getElementById("title")
      if (language === "english") {
        myTitle.innerHTML = "Hello Welcome to Blanks App"
      }
      if (language === "hebrew") {
        myTitle.innerHTML = "שלום הגעתם לאפליקציה של פלוני"
      }
      if (language === "spanish") {
        myTitle.innerHTML = "Hola, bienvenidos a la aplicación Blank"
      }
    }
  </script>
</body>

</html>

编辑
事实证明,就像这里的人指出的那样,“translate”是保留的,因此将其重命名为translateBlurg。尽管不幸的是,即使尝试在全局窗口对象window.translateBlurg = translateBlurg上设置功能后,它仍然无法在codeandbox上工作,但我收到了translateBlurg错误。
问题here是相似的,尽管我也看不到为什么会出现这种情况的实际解释。
第二次编辑
通过在window.translateBlurg = translateBlurg窗口中声明该功能,我可以在codesandbox中运行该功能,如果该功能仅在单独的文件中时在script标记中,则该功能不起作用。

最佳答案

Chorme和Mozilla Firefox在其浏览器中使用p5 JS渲染引擎。并且translate不是Pure Javascript保留关键字,而是其p5 js内置方法。这就是为什么它有冲突。
对于引用:https://www.geeksforgeeks.org/p5-js-translate-function/

<html lang="en">

<head>
  <title>The HTML5 Herald</title>
  <meta charset="utf-8">
  <meta name="description" content="The HTML5 Herald">
  <meta name="author" content="SitePoint">
  <style src="./src/moshestyles.css"></style>
</head>

<body>
  <h1 id="title"></h1>
  <button onClick="translate_function('english')"> English </button>
  <button> Hebrew </button>
  <button> Spanish </button>
  <script>
    function translate_function(language) {
    alert('Hello');
      let myTitle = document.getElementById("title")
      if (language === "english") {
        myTitle.innerHTML = "Hello Welcome to Moshe Finsons App"
      }
      if (language === "hebrew") {
        myTitle.innerHTML = "שלום הגעתם לאפליקציה של משה פינסון"
      }
      if (language === "spanish") {
        myTitle.innerHTML = "Hola, bienvenidos a la aplicación Moshe Finsons"
      }
    }
  </script>
</body>

</html>

关于javascript - 为什么我无法在html元素中访问我的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58028372/

10-12 06:07