老问题,但答案可能很有用,因为现在仍然使用 TinyMCE。
问题是当您将 HTML 内容设置为 TinyMCE 编辑器时,实际上会修改原始内容。例如,可能会反转 HTML 属性。它不会更改渲染结果的任何内容,但字符串比较不起作用。
所以我所做的只是将原始 HTML 放入一个不可见的 TinyMCE 编辑器中,然后在这个编辑器和我的“真实”编辑器之间进行比较。
<script type="text/javascript">
tinymce.init({
selector: 'textarea#originalContent'
});
</script>
<textarea id="originalContent" style="display:none;"></textarea
然后在需要时触发比较。在这个例子中,我选择在每次修改我真正的 TinyMCE 编辑器的内容时执行它
<script type="text/javascript">
tinymce.init({
theme: 'modern',
height: 500,
width: 950,
selector: 'textarea#tinymcePopup',
setup: function (ed) {
ed.on("change", function () {
contentChanged(ed);
})
}
});
function contentChanged() {
var originalContent = tinymce.get('originalContent').getContent();
var editableContent = tinymce.get('tinymcePopup').getContent();
if (originalContent != editableContent) {
console.log('changed');
}
else {
console.log('not changed');
}
}
</script>
<textarea id="tinymcePopup"></textarea>