如何在javascript中内部调用外部函数?

如何在javascript中内部调用外部函数?,javascript,html,Javascript,Html,我对JavaScript比较陌生,所以这可能有点微不足道。然而,我似乎找不到这个问题的答案 假设我有一个JavaScript文件(bar.js),其中有一个名为foo()的函数。我想在脚本标记内调用这个函数(foo)。我希望它能像这样工作 <script type="text/javascript" src="bar.js"> foo(); </script> 我让它工作。 谢谢大家。您需要首先包含包含函数的javascript: <script type=

我对JavaScript比较陌生,所以这可能有点微不足道。然而,我似乎找不到这个问题的答案

假设我有一个JavaScript文件(bar.js),其中有一个名为foo()的函数。我想在脚本标记内调用这个函数(foo)。我希望它能像这样工作

<script type="text/javascript" src="bar.js"> 
  foo();
</script>
我让它工作。
谢谢大家。

您需要首先包含包含函数的javascript:

<script type="text/javascript" src="bar.js"></script>

然后在另一个脚本标记中调用它:

<script type="text/javascript">
    foo();
</script>

foo();
在您的示例中,您似乎将两个概念混合到一个无效的脚本标记中:包括一个外部javascript文件,并在脚本标记的主体中编写代码

根据报告:

脚本可以在脚本元素的内容中定义,或者 在外部文件中。如果未设置src属性,则用户代理必须 将元素的内容解释为脚本。如果src有 URI值时,用户代理必须忽略元素的内容并检索 该脚本通过URI访问


因此,基本上你应该避免这种情况,并为包含外部文件和编写内联js使用单独的脚本标记。

你能发布你在JSFIDLE中尝试过的代码吗?相关:所以你不能链接和调用同一个脚本标记?这不能解释为什么从按钮调用它的版本不起作用。不,你不能,您应该在两个单独的脚本标记中执行此操作。@DarinDimitrov-问题中有三组代码。这个答案解释了为什么集合1和集合3不起作用。这并不能解释为什么集合2不起作用。你是对的,我已经更新了我的答案,以引用规范,该规范准确地说明了你所说的。如果同时具有src属性和内联主体,则只加载外部脚本,而忽略主体。
<html>
  <head>
    <script type="text/javascript" src="bar.js">
    </script>
    <!--From what yall say I should have another script
       tag here for anything else. Say some variable?-->
    <script type="text/javascript">
      var a = "hello";
      var b = "text";
    </script>
  </head>
  <body>
    <!--This should work now?-->
    <button type="button" onclick="foo(b,a)">
      Click me
    </button>
  </body>
</html>
function foo(id,string){
  document.getElementById(id).innerHTML = string;
}
<script type="text/javascript" src="bar.js"></script>
<script type="text/javascript">
    foo();
</script>