【发布时间】:2014-05-22 21:20:53
【问题描述】:
我正在将 firepad 与我的 django 项目集成。我在 javascript 方面没有太多专业知识,因此我面临一个问题。
如果我按照所有步骤操作,一切似乎都正常。
<script>
//// Initialize Firebase.
//var firepadRef = getExampleRef();
// TODO: Replace above line with:
var ref = new Firebase('<YOUR FIREBASE URL>');
//// 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('// JavaScript Editing with Firepad!\nfunction go() {\n var message = "Hello, world.";\n console.log(message);\n}');
}
});
</script>
但是,我在通过 django 视图呈现的页面上有一个名为“用户”的字典变量。
并且我想在上面的示例中将此变量用作 {{user.textkey}} 而不是固定的默认文本。 textkey 指向一个文本。
user = {'textkey':text}
类似这样的:-
firepad.setText('{{user.textkey}}');
我希望你明白我的意思。这里的问题是文本可能包含撇号或 unicode 字符(如左或右单引号)等。此外,django 会替换变量中的 \n 并导致 javascript 不支持的格式。
例如:-
如果文本包含
Hello \xe2\x80\x98World\xe2\x80\x99:\n Good morning:\n
然后
firepad.setText('{{user.textkey}}');
看起来像这样
firepad.setText('{{Hello 'World'
Good morning
}}');
javascript 无法理解的。
如何解决这个问题?
欢迎提出任何建议。
【问题讨论】:
标签: javascript python django firebase firepad