Google Chrome 拡張機能の popup.html ウィンドウで、Firebase が提供する Chat の例を使用しました。ポップアップはうまく機能し、入力フィールドに入力できますが、サーバーに投稿されません。入力方法にEnterを使うのが問題かなと思い、htmlボタンに切り替えたのですが、それもうまくいきません...
また、セキュリティ ポリシーを manifest.json に必ず貼り付けました。
"content_security_policy": "script-src 'self' https://cdn.firebase.com >https://*.firebaseio.com; object-src 'self'",
私のポップアップのコードは、「messageDiv」のサイズを変更し、独自のfirebase URLに貼り付けたことを除いて、Firebaseで提供された例とまったく同じです。
なぜこれがうまくいかないのかわからないので、少し助けてください!もっと具体的に言う必要がある場合はお知らせください。
popup.html
<html>
<head>
<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js'></script>
<script type='text/javascript' src='https://cdn.firebase.com/v0/firebase-auth- client.js'></script>
<script src="popup.js"></script>
<link rel="stylesheet" type="text/css" href="https://www.firebase.com/css/example.css">
</head>
<body>
<div id='messagesDiv' style='width:450px'></div>
<input type='text' id='nameInput' placeholder='Name'>
<input type='text' id='messageInput' placeholder='Message...'>
</body>
</html>
popup.js
var messagesRef = new Firebase('https://gluedtogether.firebaseio.com/');
$('#messageInput').keypress(function (e) {
if (e.keyCode == 13) {
var name = $('#nameInput').val();
var text = $('#messageInput').val();
messagesRef.push({name:name, text:text});
$('#messageInput').val('');
}
});
messagesRef.limit(10).on('child_added', function (snapshot) {
var message = snapshot.val();
$('<div/>').text(message.text).prepend($('<em/>')
.text(message.name+': ')).appendTo($('#messagesDiv'));
$('#messagesDiv')[0].scrollTop = $('#messagesDiv')[0].scrollHeight;
});