2011-12-13 8 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)に書く必要があります。

実際のテキストは、もともと来ているすべて

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

をデコード)私は(すべてのテキストのサーバーサイドをhtmlencodeして、.htmlの中にそれを書くためにしようとした)が、スクリプトタグは(.htmlのために行方不明

:テキストエリアから

方法によってこれは、IMが出力されるメッセージ

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/)のようなサードパーティライブラリを使用しないのはなぜですか? –

+0

divに書きたいものを明確にしてください(エスケープされたHTML?)。出力はこの<スクリプトのように出てくるようdiv要素に '

' のような何かを書くことだけで罰金.innerText – TomTasche

答えて

0

.html()の代わりに.text()を試しましたか?

更新:

は、あなたが最初のサーバー上の出力をエンコードするHTMLせずに()の.text使用してみましたか?

最終更新

は、あなたはこれを試したことがありますか?

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

の.text()doesntの仕事を使用して動作します& 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; & nbsp; span.textContent & nbsp; = & nbsp;データ。foo; < br/> < br/> & nbsp; & nbsp; div.appendChild(span); < < br/> < /スクリプト> – redoc01

+0

あなたは正しいですが、他の問題は、改行が機能しないことです。私はテキストエリアから改行も保存する必要があります – redoc01

+0

サーバ上では、HTML、
を\ r \ nに変換してください。テキストエリア内では、改行は
ではなく、かなり古い改行文字で表されるべきです。 – danludwig

0

のjQueryを使用してdivを埋めるために代わりhtml()の使用text()

+0

の.text()doesntの仕事出力がこの<スクリプト& NBSPように出てくるように、タイプ= "テキスト/ magicTemplate " & NBSP; ID = "スクリプトイド" > < BR/> & NBSP。 & NBSP; VAR & NBSP; DIV & NBSP; = & NBSP; document.createEleのMENT(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(sp; < br/> </script > – redoc01