2016-04-12 8 views
-1

Ich erhalte einen Fehler in meiner Konsole, der sagt "Firebase ist nicht definiert".Wie verzögert man Variablen und Funktionen?

1. Scheint so, als ob dieser "Basis" -Code vor dem anderen nicht geladen wurde.

EDIT können das Skript im Header nicht setzen, so müssen sie auf diese Weise

var script = document.createElement("script"); 
script.type = "text/javascript"; 
script.src = "https://cdn.firebase.com/v0/firebase.js"; 
document.head.appendChild(script); 

2. Also ich diese irgendwie verzögern, müssen tun. Wie würde ich das erreichen?

var myDataRef = new Firebase('https://eloquatest.firebaseio.com/'); 
myDataRef.on('child_added', function(snapshot) { 
var post = snapshot.val(); 
}); 

function submitPost(e) { 
var myDataRef = new Firebase('https://eloquatest.firebaseio.com/'); 
var name = $('#field0').val(); 
myDataRef.push({name: name}); 
$('#field0').val(''); 
} 

3. Ich versuchte es in $(document).ready(function() gestellt, aber hat nicht funktioniert. -Link: https://learn.jquery.com/using-jquery-core/document-ready/

+0

Haben Sie jQuery-Bibliothek als auch enthalten? –

+2

Verwenden Sie 'setTimeout()', um ein paar Sekunden zu warten, bevor die Funktion ausgelöst wird – Jer

+0

Was Sie suchen, ist 'onload' Event: http://stackoverflow.com/questions/16230886/trying-to-fire-onload-event- on-script-tag – freakish

Antwort

1

Verwenden onload Methode von document.createElement(), auf diese Weise:

var script = document.createElement('script'); 
script.onload = function() { 
    // put here code which depends on Firebase to be loaded... 
}; 
script.type = "text/javascript"; 
script.src = "https://cdn.firebase.com/v0/firebase.js"; 
document.head.appendChild(script); 
+0

Hmm immer noch nicht funktioniert – Hbaecklund

1

Was Sie suchen onload Veranstaltung ist:

var script = document.createElement("script"); 
document.head.appendChild(script); 

script.onload = function() { 
    var myDataRef = new Firebase('https://eloquatest.firebaseio.com/'); 
    myDataRef.on('child_added', function(snapshot) { 
     var post = snapshot.val(); 
    }); 

    function submitPost(e) { 
     var myDataRef = new Firebase('https://eloquatest.firebaseio.com/'); 
     var name = $('#field0').val(); 
     myDataRef.push({name: name}); 
     $('#field0').val(''); 
    } 
}; 
script.type = "text/javascript"; 
script.src = "https://cdn.firebase.com/v0/firebase.js"; 

Beachten Sie, dass SO nach diesen Thread [Trying to fire the onload event on script tag ] die Reihenfolge dieser Operationen (Aufruf appendChild, Einstellung src und onload) zählt. Habe das nicht überprüft.

Auch da Sie jQuery verwenden Sie vielleicht einen Blick auf getScript Funktion haben wollen: http://api.jquery.com/jQuery.getScript/

+0

scheint nicht zu funktionieren – Hbaecklund

Verwandte Themen