javascriptについての質問です。

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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/02/14 04:15:52
  • 終了:--

回答(1件)

id:kimizu No.1

kimizu回答回数726ベストアンサー獲得回数212006/02/14 17:17:18

ポイント80pt

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

とほほのJavaScriptリファレンス

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

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


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

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

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

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

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

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


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

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


ちなみに、

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

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

id:phare

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

2006/02/19 18:06:48

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

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

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

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

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