私は自分のコンテンツ管理システム(CMS)用の純粋なJavaScriptWYSIWYGエディターを開発しています。これを行うために必要なのは、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>