我正在为我自己的内容管理系统 (CMS) 开发一个纯 JavaScript 所见即所得编辑器。我需要做的是将 IFRAME 中的源代码与 TEXTAREA 元素的内容同步,这样我就可以切换源代码视图和来回编辑富文本。我有一些代码,它同步数据,但是我只能更改富文本编辑器 (IFRAME) 中的内容,而不是源编辑器 (TEXTAREA)。这样做的目的是通过 POST 表单将数据提交到服务器,因为我不知道我还能怎么做。我也不想使用 jQuery。我不是“JavaScript 专家”。无论如何,这是我的代码部分:
<iframe id="editor" frameborder="0"></iframe>
<textarea id="html" onchange="document.getElementById('editor').contentWindow.document.body.innerHTML=this.value;"></textarea>
<script>
var e = document.getElementById("editor").contentWindow;
e.document.designMode = "on";
e.document.open();
e.document.write("<head><style>body{font-family:arial,helvetica,sans-serif;}</style></head>");
e.document.close();
function def() {
document.getElementById("fontName").selectedIndex = 0;
document.getElementById("fontSize").selectedIndex = 1;
document.getElementById("foreColor").selectedIndex = 0;
}
function edit(x, y) {
e.document.execCommand(x, false, y);
e.focus();
}
setInterval(function() {
document.getElementById("html").value = e.document.body.innerHTML;
}, 200);
</script>