2011-12-13 19 views
1

我想要的是允許用戶能夠在div元素中編寫標記語言 因此,如果是這樣的腳本,那麼writemarkup = ... ...如何在div.html()方法中保留標記語言

<script type="text/magicTemplate" id="scriptId"> 
var div = document.createElement("div"), 
    span = document.createElement("span"); 

span.textContent = data.foo; 

div.appendChild(span); 

return div; 
</script> 

我需要在div.html(writemarkup)中編寫它;

我曾嘗試的HTMLEncode所有文字服務器端,然後將其寫入到html的(),但腳本標籤失蹤,因爲html的()實際上解碼一切

Dim messageUrlEncoded As String = System.Web.HttpContext.Current.Server.HtmlEncode(message) 

文本最初到來從方式的文本區域

這是即時通訊做寫出來的消息

var divMessage = $("<div/>"); 
    $(divMessageOuter).append(divMessage); 
    $(divMessage).attr("class", "divmessage"); 
    $(divMessage).html(message); 

輸出是:

<script&nbsp;type="text/magicTemplate"&nbsp;id="scriptId"><br />&nbsp;&nbsp;var&nbsp;div&nbsp;=&nbsp;document.createElement("div"),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;span&nbsp;=&nbsp;document.createElement("span");<br /><br />&nbsp;&nbsp;span.textContent&nbsp;=&nbsp;data.foo;<br /><br />&nbsp;&nbsp;div.appendChild(span);<br /><br />&nbsp;&nbsp;return&nbsp;div;<br /></script> 
+1

爲什麼不使用像[Markdown Sharp](http://code.google.com/p/markdownsharp/)這樣的第三方網站? – 2011-12-13 20:28:48

+0

請說明你想寫入div(轉義HTML?)。作爲輸出出來這樣<劇本創作像 '

' 成一個div只是正常使用.innerText – TomTasche 2011-12-13 20:57:36

回答

0

您是否嘗試過.text()而不是.html()?

更新:

您是否嘗試過使用的.text(),而HTML服務器首先在編碼輸出?

最後更新

你試過嗎?

$(divMessage).text(message.replace('<br />', '\r\n')); 
+0

的.text()不工作& NBSP;類型= "文/ magicTemplate " & NBSP; ID = " scriptId " > < br/> & nbsp; & NBSP; VAR & NBSP; DIV & NBSP; = & NBSP;使用document.createElement(" DIV "),< BR/> & NBSP; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; span & nbsp; = & nbsp; document.createElement(" span "); < br/> < br/> & nbsp; & nsp.spring.textContent & nbsp; = & nbsp;數據。FOO; < br/> < br/> & nbsp; & nbsp; div.appendChild(span); < < br/> < /腳本> – redoc01 2011-12-13 20:33:21