Невозможно заставить Firepad работать правильно
Я создал Firebase ( https://mkaminsky.firebaseio.com/) и пытаюсь использовать Firepad для создания инструмента для совместной работы над кодом. Я создал этот HTML-файл, как сказано в примере ( https://github.com/firebase/firepad/blob/master/examples/code.html).
<!doctype html>
<!-- See http://www.firepad.io/docs/ for detailed embedding docs. -->
<html>
<head>
<meta charset="utf-8" />
<script src="https://cdn.firebase.com/v0/firebase.js"></script>
<script src="codemirror/lib/codemirror.js"></script>
<script src="codemirror/mode/javascript/javascript.js"></script>
<link rel="stylesheet" href="codemirror/lib/codemirror.css" />
<script src="firepad.js"></script>
<link rel="stylesheet" href="firepad.css" />
<style>
html { height: 100%; }
body { margin: 0; height: 100%; position: relative; }
.firepad {
position: absolute; left: 0; top: 0; bottom: 0; right: 0; height: auto;
}
</style>
</head>
<body>
<button type="button">Test</button>
<div id="firepad-container"></div>
<script>
//// Initialize Firebase.
var firepadRef = new Firebase('https://mkaminsky.firebaseio.com/');
//// Create CodeMirror (with line numbers and the JavaScript mode).
var codeMirror = CodeMirror(document.getElementById('firepad-container'), {
lineNumbers: true,
mode: 'javascript'
});
//// Create Firepad.
var firepad = Firepad.fromCodeMirror(firepadRef, codeMirror);
//// Initialize contents.
firepad.on('ready', function() {
if (firepad.isHistoryEmpty()) {
firepad.setText('//hello');
}
});
</script>
</body>
</html>
Однако этот код не работает как следует. Он отображает редактор кода с подсветкой синтаксиса, но не выполняет "setText('//hello');" метод. Любые другие команды, поставленные на его место, также не работают.
Кроме того, кнопка не отображается на HTML-странице.
Я проверил и проверил, что Firebase работает должным образом.
2 ответа
Может быть, код isHistoryEmpty() не работает для вас просто потому, что он работал один раз, а теперь история не пуста?
$ curl https://mkaminsky.firebaseio.com/.json
{"users":{"-J6J90xrR-D-XC6WE23F":{"color":"#d5b3ff"}},"history":{"A0":{"a":"-J6HUBET5icmC-yXAkJb","o":["//hello"]}}}
Попробуйте очистить свою базу данных или использовать новое пространство имен для документов панели. Самый простой способ проверить свежие пространства имен
Firepad.fromCodeMirror(firepadRef.push(), codeMirror);
который последовательно запускает для меня ветку isHistoryEmpty() (протестировано на https://cben-sandbox.firebaseio.com/, Chrome & Firefox).
Скорее всего, отсутствует форматирование CSS. Согласно документации, добавьте следующее правило CSS:
.firepad {
width: 700px;
height: 450px;
background-color: #f62; /* dark orange background */
}