3

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

我在表单中有一个隐藏的输入元素,当我提交表单时,它会被 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标签

4

3 回答 3

6

我是 EpicEditor 的创建者。你不应该得到innerHTML。在您编写时,EpicEditor 对 innerHTML 没有任何作用。您看到的文本和代码在所有浏览器之间都会有所不同,这就是contenteditable字段的工作方式。例如,某些浏览器会为空格插入 UTF-8 字符 some &nbsp

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

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

更多详情exportFilehttp ://epiceditor.com/#exportfilefilenametype

PS你不需要做输入#内容。这与#content 相同:)

于 2012-11-08T05:29:39.163 回答
1

如果您不知道原因,您可以这样做:

<script type="text/javascript">
    $('button#submit').click(function(){
        var content = editor.getElement('editor').body.innerHTML; 
        content = content.replace("&nbsp;", " ");
        $('input#content').html(content);
    });
</script>
于 2012-11-05T20:55:44.290 回答
0

[编辑:已解决] 我不应该使用innerHTMLinnerText而是。


我发现 Epic Editor&nbsp;在第一个空间之前的所有空间上都使用了。这是一个功能,大概。

然而,这不是问题。所有的空间都被转换为&nbsp;,最终,我意识到它发生在 Epic Editor 加载自动保存的内容时localStorage

我现在每次都从后端加载内容,而不是自动保存。不是最优的,但可以解决它。

于 2012-11-07T12:00:32.870 回答