リアルタイム マークダウン エディターdillinger.ioのクローンを作成していますが、ドキュメントにビデオを埋め込んだ場合の dillinger とは異なりますが、ドキュメントが更新されるたびにビデオが更新されて点滅することは望ましくありません。
DOM の構成方法は次のとおりです。
<div id='editor'></div>
<div id="viewer">
<h2>title</h2>
<iframe width="560" height="315"
src="http://www.youtube.com/embed/9bZkp7q19f0" frameborder="0" allowfullscreen>
</iframe> <!-- Gangnam style youtube embed-->
<p>What a dull video</p>
</div>
この場合のエディターはすばらしいAce エディターで、editor.getValue()
これを行う簡単な既知の方法はありますか?私はグーグルで検索しましたが、有用なものは何も見つかりませんでした。
これは私が現時点で持っているものです
function update(){
var mk = editor.getValue();
var updatedHtml = converter.makeHtml(mk);
$('#viewer').html(updatedHtml);
}
editor.getSession().on('change', function(e) {
update();
});
しかし、私はそれをこのようなものに変更したいと思います
function update(){
var before = $('#viewer').html();
var mk = editor.getValue();
var updateHtml = converter.makeHtml(mk);
$('#viewer').replaceWhereDifferent(updateHtml, before);
}
これにより、更新が発生するたびに埋め込まれた youtube ビデオが点滅するのを止めることができます。
問題は、関数の適切な形式がないことです
replaceWhereDifferent(updateHtml, before)
HTML文字列の例は次のとおりです。
<div id="viewer">
<h2>title</h2>
<iframe width="560" height="315"
src="http://www.youtube.com/embed/9bZkp7q19f0" frameborder="0" allowfullscreen>
</iframe> <!-- Gangnam style youtube embed-->
<p>comment</p>
</div>
ここで、ユーザーが p コメントを次のように変更するとします。
<p>OMG thats the best video ever</p>
ビデオを更新せずに更新したい
これはすべて、 Ace エディターからコードを取得するマークダウン コンバーターによってコードが生成されていることです。そのため、すべてのマークダウンが一緒に変換され、マークダウンのさまざまな部分を識別したりタグ付けしたりすることはできません。私が得るのは、更新されたhtml文字列だけです