【问题标题】:Why i cant execute this code(js in html)? [duplicate]为什么我无法执行此代码(html 中的 js)? [复制]
【发布时间】:2022-06-10 22:42:58
【问题描述】:

html文件:

<!DOCTYPE html>
<head>
    <script src="script.js"></script>
</head>
<body>
    <div class="q" id="cooki" onclick="cookie()">Accept!</div>
</body>

js:


function cookie() {
    alert("hi");
}

我什至用 console.log 进行了测试,我在正文标签中使用了脚本源,没有任何效果

【问题讨论】:

  • @jabaa — 不,它不是保留的。 document.cookie 是预定义的,是 onclick 试图访问的内容(因为 onclick 很糟糕)所以(成功定义的)window.cookie 永远不会被查看。
  • @Quentin 老实说,我不了解技术细节。我只知道如何解决它。有了你的解释,我明白为什么我可以在 JavaScript 代码中使用该函数,但不能从 HTML 访问它。

标签: javascript html


【解决方案1】:

嗨@Z3N1X 欢迎来到 Stackoverflow。 要解决您的问题,请尝试将您的函数重命名为其他名称, 因为答案下方的所有 cmets 都是如何说的(感谢您纠正我) 当您在函数或变量中使用 cookie 名称时,onclick 认为您尝试使用 document.cookie 函数。 这就是发生这种情况的原因。

【讨论】:

  • 这不是真的。 cookie 在 JS 中没有保留。
  • 您好,非常感谢,成功了!它太疯狂了,这只是一个名称问题,我搜索了整个网络!
  • 这个答案是错误的。请参阅重复的问题。 onclick 正在尝试访问 document.cookie 而不是 window.cookie
  • @kiranvj — 该特定错误是因为您正在沙盒 iframe 中测试代码。通常您会收到“cookie 不是函数”错误,因为在 onclick 属性的范围内有一个预定义的属性。
  • 好的。所以浏览器只是认为cookie 函数可能是对document.cookie 属性的调用。感谢您提供的信息,我会记住的
猜你喜欢
  • 1970-01-01
  • 2014-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-08
  • 2016-03-27
  • 1970-01-01
相关资源
最近更新 更多