繁体   English   中英

如何在外部Javascript文件中使用Firebase

[英]How do I use Firebase in an external Javascript file

这可能是一个非常简单的问题,但我一直在尝试在外部javascript文件中使用Firebase,该文件与HTML文件一起使用并且无法使其正常工作。 我打算将此文件用于许多其他类似的页面,所以我宁愿将它保存在外部文档中。 具体来说,我的代码是:

$(function() {

var head= document.getElementsByTagName('head')[0];
var script= document.createElement('script');
script.src= 'https://cdn.firebase.com/v0/firebase.js';
head.appendChild(script);

var Database = new Firebase('https://myfirebase.firebaseIO.com/');
...

但是当我尝试运行它时,它表示Firebase对象/关键字未定义。 我知道脚本正确地附加到HTML页面,因为我在运行代码后检查了页面上的HTML。

我还读过你可能需要有个人服务器运行Firebase的地方,但坦率地说我真的不知道这意味着什么 - 无论如何,我使用Mac OSX并在Chrome中运行我的所有HTML和Javascript。

非常感谢你!

问题是使用document.createElement不会强制在调用包含脚本之前加载和呈现脚本(现在正在调用它)。 此方法无法保证何时调用您包含的脚本。

此外,您通过将脚本放在$(function() {...})来加载脚本onDomReady; 你想立即将它插入标题,而不是等待整个文档加载。

最简单的答案是将Firebase放入html页面的头部; 你还没有真正解释过你的限制,但我认为这不适合你。 如果是,KISS。

另一个简单的答案是使用jQuery,因为你显然可以使用它。

$.getScript('https://cdn.firebase.com/v0/firebase.js', function() {

    // now I can use Firebase

});

您也可以使用其他方法完成此操作(等到使用setInterval定义Firebase;使用除document.createElement之外的其他脚本检索方法 - 尝试使用google搜索“通过javascript加载顺序动态加载脚本”),但我认为这足以满足您的需求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM