人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

●質問者: calorieta
●カテゴリ:ウェブ制作
✍キーワード:ウィンドウ ウインドウ カーソル タグ 入力
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● dungeon-master
●70ポイント

「親ウィンドウ自体で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();

を行ってください。

◎質問者からの返答

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ