如何在html文件中调用JS函数

时间:2018-12-03 06:44:40

标签: javascript

我目前具有此功能:

<script>
        function firebase_database(){
          var docRef = firebase.collection("signs").doc("PuA9s68iuxBnJo7PEezC");
          docRef.get().then(function(doc) {
              if (doc.exists) {
                  console.log("Document data:", doc.data());
              } else {
                  // doc.data() will be undefined in this case
                  console.log("No such document!");
              }
          }).catch(function(error) {
              console.log("Error getting document:", error);
          });
        }
        </script>

我尝试用

调用它
<script> firebase_database() </script>  

但是我明白了

(index):823 Uncaught TypeError: firebase.collection is not a function
    at firebase_database ((index):823)
    at (index):836

SN:第一次使用JS

7 个答案:

答案 0 :(得分:0)

触发事件,页面准备就绪或加载时,可以调用该函数。后者已在以下解决方案中实现

<script> 
window.onload = function() {
 firebase_database() ;
};
</script> 

答案 1 :(得分:0)

您不能只声明函数名称-像这样调用它:

<script>firebase_database()</script>

如果需要,您可以在窗口加载后调用它:

<script>
    window.onload = function() {
        firebase_database()
    };
</script>

答案 2 :(得分:0)

您可以在下面简单地这样称呼

<script>
  firebase_database();
</script>

如果函数是用其他任何JS文件编写的,那么在函数初始化之前,您需要将该文件链接到HTML文件。

答案 3 :(得分:0)

可以使用多种方法来调用JavaScript函数。

首先,您应该确定要在什么条件下执行函数?您的html文档何时为readyonload期间? onclick期间? onchange期间?依此类推。

造成错误的原因: 该错误与您的函数调用机制无关。

  

var docRef = firebase.collection("signs").doc("PuA9s68iuxBnJo7PEezC");

问题在上面突出显示的行上。

因此,如果您只想内联加载JavaScript函数(一种正常方式):

<script>
(function your_function() {
  //alert("loaded");
})();
</script>

另一种方式:

 <script>
  function your_function() {
     //alert("loaded");
  }
  your_funtion();
 </script>

您可以像其他答案一样使用HTML属性(如onclick,onload,onchange)来加载函数。

答案 4 :(得分:0)

在这样的脚本中定义一个函数时,您随后必须调用它。

请考虑以下内容:

<script>
  var st = new Date();

  function helloWorld() {
    var ct = new Date();
    console.log("Hello World", (ct - st));
  }
</script>
<div>
  <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/LARGE_elevation.jpg/1280px-LARGE_elevation.jpg?" />
</div>
<script>
  var img = document.getElementsByTagName("img");
  img.onload = helloWorld();
</script>

在加载<script>元素时,它们可以执行我们之前定义的代码。

更新

您报告的错误涉及以下代码:

var docRef = firebase.collection("signs").doc("PuA9s68iuxBnJo7PEezC");

基本上是说firebase没有定义;因此,firebase.collection()不是定义的函数。在调用此代码之前,您将需要检查代码并确保已正确使用它并定义了所有适当的库。

希望有帮助。

答案 5 :(得分:0)

页面被放置后,调用firebase_database()函数。

如果您未在标题中引用firebase脚本,请首先将其链接。

如果已经做过,请确保在引用之后调用firebase_database()。

无论如何,事件“ DOMContentLoaded”列表器将确保所有脚本均已加载 带有src参考的外部脚本。

<script>
    document.addEventListener('DOMContentLoaded', function() {
        firebase_database();
    }, false);
</script>

但是有例外,如果外部脚本包含异步或延迟属性,它将告诉浏览器继续处理而无需等待脚本。在这种情况下,您可以理想地使用window.onload,它在页面生命周期的最后触发。

<script>
  window.onload = function() {
    firebase_database();
  };
</script>

并从脚本标签中删除此代码

 <script> firebase_database() </script>

答案 6 :(得分:-1)

您可以尝试

CommandParameter="{Binding (FocusManager.FocusedElement), ElementName='name of the window'}"

window.onload = function() {
 firebase_database() ;
};