覚書

http://jsajax.com/openWYSIWYGArticle687.aspx
ここで紹介されていたリッチテキストエディタを使用してたら、FireFoxでおかしな挙動が。。。
ページ読み込んだ後に、テーブルに表示しているデータをクリックすると、クリックしたデータをリッチテキストエディタに展開するという処理を組み込んだらDeleteキーとBackSpaceキーが効かない。
一度文字を入力するとこの現象が発生しないみたいなんだけど、なんか気持ち悪いのでいろいろ対応してみた。

リッチテキストエディタに展開する際、

document.getElementById("hoge").contentWindow.document.body.innerHTML = clickdata;

ってな感じで渡してたんだけど、どうもinnerHTMLが不味いっぽいんで、こんな感じに変更。

var doc = document.getElementById("hoge").contentWindow.document;
doc.open();
doc.write(clickdata);
doc.close();

こんな感じにwriteメソッドで中身を書き換えると上記不具合は発生しない。
が、今度はリッチテキストエディタ内でデータを入力すると、右上がくるくる回って、ページ読み込みが発生しているっぽい。
実害はなさそうなんだけどなんだか気持ち悪いので、doc.close()の後にdocument.getElementById("hoge").contentWindow.stop()を呼び出して読み込みを中止してみたら読み込みは発生せず。

今度こそ解決!って思ったらIEではcontentWindowにはstopメソッドがなくてエラー。。。
仕方なくtry-catchで逃げてみた。。。
結局根本的なとこは何もわかってないから小手先なんだけどね〜