我正在克隆一个实时的Markdown编辑器,dillinger.io,但与Dillinger不同的是,当您在文档中嵌入视频时,我不希望每次更新文档时都刷新和闪烁视频,而这种情况经常发生。
DOM组织方式如下。
在这种情况下,编辑器是美妙的 Ace editor,它允许我通过
有没有一种简单的已知方法可以做到这一点?我搜索了谷歌,但没有找到有用的信息。
这就是我目前拥有的。
这将停止嵌入的YouTube视频在更新时闪烁。问题是我没有一个好的函数表单。一些示例HTML字符串如下:
现在假设用户将p标签改为。
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,它允许我通过
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视频在更新时闪烁。问题是我没有一个好的函数表单。一些示例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>
我希望视频能够在不刷新的情况下更新
所有这些代码都是由Markdown转换器生成的,该转换器从Ace编辑器中获取代码。因此,所有Markdown都一起转换,我无法区分或标记Markdown的不同部分。我只能获得更新后的HTML字符串。