私は WYSIWYG エディターに取り組んでいます。そして、私は次のようなコードを持っています:
doc.execCommand(cmd, false, null);
cmd引数は'Bold'、'Italic' などになります。doc変数は iframe 内のドキュメントを参照し、別の場所で初期化されます。
doc = iframe1.contentWindow.document;
Chrome では正常に動作しますが、IE (私の場合は IE9) ではまったく動作しません。
開発者ツールを使用してコードをデバッグしましたが、何も問題はありませんでした。execCommand関数が機能しません。
インターネットで検索しましたが、利用可能な解決策が見つかりませんでした。
誰か助けてくれませんか?
コードサンプル:
function $see(e, o) {
var that = this;
...
this.e = $see.make('iframe', { 'class': 'editor' }); // editor iframe
this.e.onload = function () { // call when the document is loaded
var d = that.e.contentWindow || that.e.contentDocument;
if (d.document) d = d.document;
that.doc = d;
that.doc.write('<html><head></head><body></body></html>');
that.doc.body.innerHTML = that.ta.value; // that.ta refers to an textarea
that.doc.body.setAttribute('contenteditable', 'true');
...
};
}
$see.prototype.exec = function (cmd) {
// call in an <a> tag's onclick event outside the iframe
this.doc.execCommand(cmd, false, null);
};