2016-04-13 11 views
3

編集:私はonClick"submitPost()"スクリプトを非同期に読み込みますか?

<form> 
<input id="field0" name="ePost" type="text" value=""> 
<button type="submit" class="btn" onclick="submitPost()">Submit</button> 
</form> 

id="field0"とボタンで入力が頭にfirebase.jsを置くことができないFirebaseデータベース

に私のフォームからの入力データを保存したいです。それでこのように解決しました。スニペットをコンソールに1つずつ追加すると、動作するようです。しかし、コンソールに同時にロードするとエラーが発生します。ここで

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

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(''); 
} 

は、上記の例である:https://jsfiddle.net/hbaecklund/7mnns4dk/5/

は私が仕事をするために、スクリプトの非同期読み込みを行う必要がありますか?しかし、以下は動作しませんか?

$.ajax({ 
    url: 'https://cdn.firebase.com/v0/firebase.js', 
    dataType: 'script', 
    cache: true, 
    success: 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(''); 
    };  
    } 
}); 
+0

[requirejs](http://requirejs.org/) – Max

+0

あなたがフォームを送信していることです。あなたはそれを避け、関連する方法を使ってfirebaseにデータを送るべきです。しかし、それでも、なぜあなたは頭にファイアベーススクリプトを含めることができませんか? –

答えて

1

スクリプトタグのLoadイベントを使用することによって、これを試してみてください:https://jsfiddle.net/7mnns4dk/6/

は、基本的にはちょうど使用:あなたはそれを書いたとして

script.load = function() { 
    // enter code that needs the script to be loaded here 
} 

をまた、それはjQueryを使って動作しますが、ちょうどsubmitPostを移動ボタンでアクセスできるようにします。https://jsfiddle.net/7mnns4dk/7/

関連する問題