不知道这是否是一个实际的问题,但是我正在使用Epic Editor在我的GAE应用程序(webpy中以mako作为模板引擎)中输入和保存 Markdown 。

提交表单时,我在表单中有一个隐藏的输入元素,该元素由EpicEditor的内容填充,但是所有空白都由 代替。这是预期的功能吗?如果我在EpicEditor网站上检查相同的代码,则它显然返回空格而不是 ,所以我的有什么不同?

<form>
<!-- form elements -->
<input id="content" name="content" type="hidden" value></input>
<div id="epiceditor"></div>
<button type="submit" name="submit" id="submit">submit</button>
</form>

<script type="text/javascript">
    $('button#submit').click(function(){
        var content = editor.getElement('editor').body.innerHTML; //all the spaces are returned as &nbsp; and breaks are <br>
        $('input#content').html(content);
    });
</script>

注意:我想将内容作为markdown保存在数据存储的TextProperty字段中,并在使用marked.js检索它时生成html标签。

最佳答案

我是EpicEditor的创建者。您不应该获取innerHTML。 EpicEditor在您编写时不对innerHTML进行任何操作。您在所有浏览器中看到的文本和代码都将有所不同,这就是contenteditable字段的工作方式。例如,某些浏览器在一些&nbsp的空格处插入UTF-8字符。

EpicEditor为您提供标准化文本的方法。您不应该尝试手动解析文本。

$('button#submit').click(function(){
    var content = editor.exportFile();
    $('input#content').html(content);
});

有关exportFile的更多详细信息:http://epiceditor.com/#exportfilefilenametype

附言您不需要输入内容。就是和#content一样:)

07-28 08:16