首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >firepad:在firepad的codemirror div中作为默认文本的变量

firepad:在firepad的codemirror div中作为默认文本的变量
EN

Stack Overflow用户
提问于 2014-05-22 21:20:53
回答 1查看 411关注 0票数 0

我正在集成firepad与我的django项目。我在javascript方面没有太多的专业知识,因此我面临一个问题。

如果我遵循所有的步骤,一切似乎都很好。

代码语言: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”的字典变量。

我想在上面的例子中使用这个变量作为{user.textkey},而不是一个固定的默认文本。textkey指向文本。

代码语言:javascript
复制
user = {'textkey':text}

就像这样:-

代码语言:javascript
复制
firepad.setText('{{user.textkey}}');

我希望你明白我的意思。这里的问题是,文本可能包含任何类似撇号或unicode字符(如左或右单引号)等。而且django替换变量中的\n并导致javascript中不支持的格式。

例如:-

如果文本包含

代码语言:javascript
复制
Hello \xe2\x80\x98World\xe2\x80\x99:\n Good morning:\n 

然后

代码语言:javascript
复制
firepad.setText('{{user.textkey}}');

会像这样

代码语言:javascript
复制
firepad.setText('{{Hello 'World'
Good morning
}}');

这是javascript无法理解的。

如何处理这件事?

欢迎任何建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-22 22:07:25

你可以试试

代码语言:javascript
复制
firepad.setText('{{user.textkey | escapejs}}')

我找到了记录在案的这里

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23817258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档