2012-11-04 45 views
2

不確定這是否是實際問題,但我正在使用Epic Editor在我的GAE應用程序中輸入並保存降價(webpymako作爲模板引擎)。EpicEditor文本顯示爲 而不是空格

當我提交表單時,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> 

注:我想我的內容降價保存在TextProperty場我的數據存儲和生成的HTML標記時,我檢索使用marked.js

回答

5

我是EpicEditor的創造者。你不應該得到innerHTML。 EpicEditor對你寫的innerHTML沒有任何幫助。您看到的文本和代碼在所有瀏覽器中都不相同,這是contenteditable字段的工作原理。例如,一些瀏覽器插入UTF-8字符的空格&nbsp

EpicEditor爲您提供了標準化文本的方法。你不應該試圖手動解析文本。在exportFile

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

更多細節:http://epiceditor.com/#exportfilefilenametype

附:你不需要做輸入#內容。這就像#content :)

+0

另外,請注意,隨着EpicEditor的發展,編輯器HTML中會有更多的標記可能會添加功能,右鍵單擊菜單等,所以不要依賴HTML內部。 –

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> 
0

[編輯:解] 我不應該使用innerHTML,但innerText代替。


我想通了,史詩編輯器使用&nbsp;繼續上的第一個所有空間。據推測,這是一個功能。

但是,這不是問題。所有的空間都被轉換爲&nbsp;,最終,我意識到它發生在Epic編輯器從localStorage加載自動保存的內容時。

我現在每次都從我的後端加載內容而不是自動保存。不是最優的,但解決了它。

+1

查看我的回答。你讓它比它更難:) –

+0

謝謝@OscarGodson! – sw00