2011-11-03 86 views
1

我有一个奇怪的问题。我是从一个div CONTENTEDITABLE读取HTML,然后发送一个Ajax请求我的后端,以保存HTML到MongoDB的文档,我还保存是完全相同的HTML到localStorage的。有趣的问题; localStorage和MongoDB

而且,你猜会发生什么?当文本后装回,在localStorage的渲染罚款,但,从数据库中检索到的数据变为在整个散&的NBSP和<div> s的文字。在保存之前,MongoDB对数据做了些什么?

+0

它编码成[unicode的](http://en.wikipedia.org/wiki/Unicode)。 – switz

回答

2

听起来像是从服务器HTML编码返回的文本。无论MongoDB中的值是经过编码还是在发送响应之前对结果进行编码,都可以通过查看MongoDB中的实际记录来查看。

一个简单的方法与编码数据的工作是:

var decodedData = $("<div />").html(encodedData).text(); 

没有jQuery和这种方式背后的逻辑(编码上飞):

var el = document.createElement("div"); 
el.innerHTML = encodedData; //shows text that is looks to user like the HTML 
var decodedData = el.firstChild.nodeValue; //text node value to use as HTML later 
+0

那么,这段代码片段是否将编码数据转化为解码数据? –

+0

是的。这应该。 – Meligy

+0

我会检查它,并让你知道它是否很快工作:) –

-1

这是一无所知的MongoDB,它的AJAX呼叫。

在AJAX调用的响应的串将被转换为字符实体,或它们将打破乌尔DOM与像“<”字符。你所需要做的就是将它们转换回来。