window.opener.document.activeElement.valueの入力中の文字列のカーソル直下にサブウィンドウで選択させた特定の文字列を挿入したいのですが、カーソル位置の取得がサブウインドウから?だとうまくいきません。


文字列を選択して前後にタグ挿入ではなく、カーソルの部分に文字列を入れたいのですが、誰か詳しい方ご教授願えませんでしょうか。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/11/07 06:59:44
  • 終了:--

回答(1件)

id:dungeon-master No.1

dungeon-master回答回数571ベストアンサー獲得回数402005/11/07 12:25:56

ポイント70pt

「親ウィンドウ自体でactiveElementオブジェクトが操作できるのに、サブウィンドウからは

親ウィンドウのactiveElementオブジェクトを操作することができない」と言うことですね。

おそらく、操作したいElemntがAcive状態でない(親にFocusされていない)ためです。

以下のように一旦親ウィンドウのドキュメントオブジェクトにFocusしてみてはいかがでしょう。


window.opener.document.focus();

tmp=window.opener.document.activeElement;


まず、window.opener.document.focus();でFocusを親に返します。

tmp=window.opener.document.activeElement;で親のactiveElementを取得することにより、

以降の操作は取得済みのオブジェクト(この場合はtmp)に対して行えばよくなります。

もし、サブウィンドウにFocusを戻したいなら、諸々の操作の最後に document.focus();

を行ってください。

id:calorieta

ありがとうございます。その記述は入れていなかったので含めてみます。

困っているのは、activeElementに入力した文字のテキストの間に、任意の文字列を入れたい、という感じなのですが、うまくいかずに困っています。

よろしければご教授くださいませ。

2005/11/09 18:30:37

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません