【问题标题】:firepad: a variable as the default text in firepad's codemirror divfirepad:作为firepad的codemirror div中默认文本的变量
【发布时间】: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


    【解决方案1】:

    你可以试试

    firepad.setText('{{user.textkey | escapejs}}')
    

    我发现记录在 here

    【讨论】:

    • 感谢您的建议。它在某种程度上确实有效,我能够设置文本,但在输出中,整个文本被转换为单行,例如“Hello World Good Morning”(或者想象一个段落或博客被转换为长单行) ,而我希望文本按原样显示而不影响 javascript 格式。
    猜你喜欢
    • 2022-06-11
    • 2013-04-14
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多