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

javascriptについての質問です。
テキストをマウスで選択した時に、その選択範囲に該当するエレメントを取得するには、どうしたらいいのでしょう。マウスで選択、右クリックという作業で、選択した範囲に含まれる要素を取得したいのです。できれば、マウスで選択した文字の情報からは取得したくありません。マウスのdown,upイベントを記憶できればいいような気がするのですが、やり方がわかりません。
<span id=”1”>jinriki</span><span id=”2”>kenskau</span>で、マウスでrikikensと選択してクリックしたら、id=1,2の要素を取得したいのです。

●質問者: phare
●カテゴリ:コンピュータ
✍キーワード:JavaScript イベント クリック テキスト マウス
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● kimizu
●80ポイント

http://www.tohoho-web.com/js/index.htm

とほほのJavaScriptリファレンス

リファレンスを張りましたが、

イベントハンドラのonfocusで出来るかもしれません。


以下の手順でなんとか可能かもしれませんね。

・onmouseupで、各エレメントのonfocusが有効になるようにする。

もしくは、onfocusの飛び先で処理が有効になるようにフラグを立てる。

・onfocusのイベントが発生したら、自分のエレメントIDをグローバルな配列に保存する。

・onblurのイベントでは、グローバル配列から、自分のエレメントIDを消す。

・onmouseupで現在グローバル配列に入っているエレメント名を確認する。


右クリックされた時点で、グローバル配列内に入っているエレメントIDから

エレメントの要素を取り出せばいいと思います。


ちなみに、

「選択されたエレメントの全ての要素が必要」ですよね。

「選択されたエレメントの選択されている部分が必要」なのではないですよね。

◎質問者からの返答

単語一個ごとに、連番でIDを振って、マウスで範囲を選んで、要素を取得なので、3単語以上の時は、連番な事を頼りにしようと思っていたのですが、全て取れた方が使いやすそうですね。あと、onfocusは、フォーム要素じゃなくても使えるのでしょうか?よく分かってないのですが、自分は。

関連質問


●質問をもっと探す●



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