【问题标题】:Functions in an external javascript file. What am i doing wrong?外部 javascript 文件中的函数。我究竟做错了什么?
【发布时间】:2011-03-14 17:43:43
【问题描述】:

我是 javascript 新手,我正在尝试运行以下代码:

<html>
<head>
    <script type="text/javascript" src="script.js">
    </script>
</head>
<body>
    <input type="button" onclick="popup()" value="Click Me!" />
</body>
</html>

script.js:

function popup() {
    alert("Hello World")
}

script.js 与 html 文件位于同一目录中,但是当我按下按钮时,它不会执行代码。

【问题讨论】:

  • 不得包含您的script.js 文件。看看这个jsfiddle.net/F2865 ...您的代码工作正常。
  • 使用浏览器的 Javascript 控制台(例如 Firefox 中的 shift-ctrl-J)查看是否有任何错误。
  • 我确实只是在与同样的事情斗争了一段时间。我的问题是一个简单的错字。除此之外,您的代码看起来不错。我刚刚检查了分号问题。我把我的所有东西都拿出来了,它仍然很好用(不过我还是把它们放回去了)。确保您的文件位于同一目录中。这样

标签: javascript function


【解决方案1】:

函数中的alert() 和对函数的调用都需要用; 关闭。所以,

<html>
<head>
<script type="text/javascript" src="script.js" />
</head>
<body>
    <input type="button" onclick="popup();" value="Click Me!" />
</body>
</html>

script.js:

function popup() {
    alert("Hello World");
}

【讨论】:

  • 不是函数。对函数的调用和对警报的调用。
  • @Fantius,是的,我就是这个意思
  • 分号是not required(当然是recommended)。
  • @Tomalak aka Jim Morrison,取决于浏览器
  • @Tomalak,我感觉到你了。希望是这样,但我会少回答很多这样的问题
【解决方案2】:
<html>
<head>
    <script type="text/javascript" src="button.js">
    </script>
</head>
<body>
    <input type="button" onclick="popup();" value="Click Me!" />
</body>
</html>

您只是漏掉了一个分号

【讨论】:

  • 我不是javascript大师,我只是用它在我的网站上做一些事情,所以请解释一下。
  • na:解释什么?它们不是必需的;就那么简单。 (但这并不是说不推荐它们。They are。它们与 OP 的问题无关。)
【解决方案3】:
<html>
<head>
    <script type="text/javascript">
        function popup() { alert('lol'); }
    </script>
</head>
<body>
    <input type="button" onclick="popup();" value="Click Me!" />
</body>
</html>

这样就行了,检查你的路径是否正确。

【讨论】:

    【解决方案4】:

    仅当您想在一行中合并代码时才需要分号

    alert("Hello World");alert("Hello World");
    

    我复制并粘贴了您的确切代码,对我来说效果很好。 唯一的解释是您的 script.js 文件中有一个错误,其中包含另一个函数。
    或者您在文本文件中有一个时髦的字符,浏览器不知道如何处理。
    删除所有空格和制表符,然后重试。

    【讨论】:

      【解决方案5】:

      您的确切代码可以在我的机器上运行,所以我认为您的文件名可能有误。如果您使用的是 Windows,请记住 Windows 会隐藏文件的扩展名,因此您最终可能会得到一个名为 script.js.txt 而不是 script.js 的文件。
      检查确切的文件名。
      另外,试试 ggregoire 的代码,看看你是否有一个弹出窗口阻止程序或类似的东西。

      【讨论】:

        猜你喜欢
        • 2013-08-06
        • 1970-01-01
        • 2015-08-26
        • 1970-01-01
        • 2016-07-18
        • 2014-09-13
        • 1970-01-01
        • 2019-12-23
        • 2011-04-16
        相关资源
        最近更新 更多