14歳の自分に衝撃の事実を告げてください

現在、iframeを使ったWYSIWYG-editorを勉強しておりexecCommandのcreatelinkに関する質問があります。

私はcreatelinkコマンドを実行するために、
(1)デザインモードをonにしたiframe内の任意の文字範囲を選択。
(2)リンク設定用フォームを表示するためのボタンを押す。
(3)リンク設定用フォームを作成しポップアップのような形で表示。
(4)ユーザにリンク(URL)の入力を求め。
(5)リンク情報(http://hoge.com/)を取得。
(6)リンク設定用フォームの消去。
(7)リンク設定用フォームから得られた情報を元にexecCommand ('createlink', false, 'http://hoge.com/')を実行。
の順序でcreatelinkを実行する形をとっています。

IE以外だと、(3)のリンク設定用フォームを作成表示しても、(7)のcreatelinkコマンド実行まで(1)の選択範囲がまだ生きていて、任意の選択範囲に正しくリンクが設定できます。

しかしIEだと(3)のリンク設定用フォームを作成した時点で選択範囲がなくなり、任意の選択範囲にexecCommandでリンクを作成することができません。

そこでたぶんIEの場合だけ(2)のボタンを押した時点で選択範囲を一時保存しておいて(7)のexecCommandを実行する前にその選択範囲を再度フォーカスさせるなどして復活させ、その後で(7)のexecCommandを実行することになるんだと思っています。

そこで質問なのですが、IEで、iframe内で取得した任意の選択範囲を一時保存し、再度その選択範囲をiframe内に復活反映させる方法はどのようにすれば可能になるのでしょうか。

具体的な方法論を解説してくれるとうれしいですが、参考になりそうなURLやキーワードだけでもかまいません。何か取っ掛かりが得たいと思っています。助けてください。

テストブラウザ
IE(ie8)
IE以外(firefox3.0.10、safari3.1.2)

A 回答 (1件)

range保存し再利用すればいい。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報