tinymce を使用してドキュメントを編集する Web アプリケーションを作成しています。私の Web アプリケーションでは、システムに保存されたファイルへのリンクを挿入するためのドラッグ アンド ドロップがサポートされています。
私が抱えている問題は、Firefox で tinymce ドキュメントにリンクを挿入しようとしたときです。ファイル ビューアーからファイルをドラッグしてドキュメントにドロップすると、ドキュメントにリンクが挿入されますが、ドキュメント内でカーソルが消えます。ただし、カーソルがあるべき場所から入力できます。カーソルを再表示させる唯一の方法は、アプリケーションの他の場所をクリックしてから、ドキュメントに戻ることです。
ドロップ時にリンクを追加するための私のコードは次のとおりです。
function addLink(id, contentType, text)
{
var link = " <a href='#open:" + contentType + "%20" + id + "'>" + text + "</a>";
tinymce.get("myDocPage").execCommand("mceInsertContent", false, link);
}
tinymce のコードを調べたところ、execCommand に文書化されていない 4 番目のパラメーターがあることがわかりました。変更中のドキュメントがフォーカスを取得するかどうかなど、実行するコマンドのさまざまなオプションを処理する構成オブジェクトです。したがって、上記の 2 行目を次のように置き換えます。
tinymce.get("myDocPage").execCommand("mceInsertContent", false, link, {skip_focus: true});
これを行った後、ドキュメントをクリックして戻すとカーソルが表示されますが、編集は新しく配置されたリンクから開始され、すべての新しいテキストがリンクの一部になります。
上記の動作はいずれも Chrome では発生しません。Chrome は挿入を適切に処理し、カーソルが存在するドキュメントにフォーカスを変更します。
以前にこの問題に遭遇した人はいますか? もしそうなら、それはどのように修正されましたか、または回避策はありますか? Firefox がフォーカスを正しく処理していないようです。
以下は、問題を示す js フィドルへのリンクです。 http://fiddle.tinymce.com/O3daab/1