Div要素をcontenteditable="true"
で編集できるようにしてマークダウンエディタを作りたいのですが、innerHtml
の動作がわからないところがあったので質問します。
文字が入力されるとdiv要素(IDはMyEditableId
)の文字をMarked.jsでHTMLに変換して、innerHtml
でdiv要素にセットしてます。
しかし、innerHtml
をしてもマークダウンの文のままでhtmlとして表示はされてません。。。
でも、ちゃんとhtmlには変換できているようなので謎です。
どうやったら、htmlに変換された状態で表示されるか教えてください。
ちなみにSimpleMDEのようなものを目指してます。
html
1<!DOCTYPE html> 2<html> 3<head> 4<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 5<script src="http://cdnjs.cloudflare.com/ajax/libs/marked/0.3.2/marked.min.js"></script> 6<script type="text/javascript"> 7 8$(document).ready(function() { 9 $('#MyEditableId').on('DOMSubtreeModified propertychange', function() { 10 var md = marked($('#MyEditableId').html()); 11 12 $('#MyEditableId').innerHtml = md; 13 14 }); 15 16}); 17 18</script> 19</head> 20<body> 21 22 <div id="MyEditableId" contenteditable="true" style="width:300px;height:300px;background-color: gray;"> 23 </div> 24 25</body> 26</html> 27
回答1件
あなたの回答
tips
プレビュー