从脚本标记内调用外部javascript函数

从脚本标记内调用外部javascript函数,javascript,Javascript,如果我这样做: <body> <script> readInData(); </script> script - external.js </body> readInData(); 脚本-external.js readInData()未被调用,我得到一个未捕获的引用错误。(external.js函数不包含在自调用函数中)。但如果我在firebase调用(如下)中放入readInData,它就会执行

如果我这样做:

<body>
    <script>

       readInData();

    </script>
    script - external.js
</body>

readInData();
脚本-external.js
readInData()未被调用,我得到一个未捕获的引用错误。(external.js函数不包含在自调用函数中)。但如果我在firebase调用(如下)中放入readInData,它就会执行

 <body>
     <script>

      db.collection("users").get().then((querySnapshot) => {
      querySnapshot.forEach((doc) => {

                  readInData();
      });

    </script>
    script - external.js
  </body>

db.collection(“users”).get().then((querySnapshot)=>{
querySnapshot.forEach((doc)=>{
readInData();
});
脚本-external.js

这是一个范围问题吗?谢谢,看来更改脚本的顺序可以解决您的问题。如果您懒惰,可以将足够大的
设置超时(readInData,10000)
并检查它是否与计时有关。
它看起来不像是范围问题。

首先加载external.js文件,以便脚本标记中的调用可以访问它

<body>
<script src="external.js"></script>
<script>

  db.collection("users").get().then((querySnapshot) => {
  querySnapshot.forEach((doc) => {

              readInData();
  });

</script>

db.collection(“users”).get().then((querySnapshot)=>{
querySnapshot.forEach((doc)=>{
readInData();
});

当页面开始加载并且页面上还没有任何内容时,此代码将立即执行。我无法从您的代码判断您是否尝试使用任何页面元素,但尝试将其放入在页面完全加载后调用的函数中。jquery=$(document)。ready({do stuff here});或者只在函数调用之前放置external.js。第二个示例可能是按照@Kevbo的建议执行。或者只将external.js放在
标题中,并将脚本标记保留在正文中。可能重复