WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:選択したテキストの場所を知りたい

0:[投稿] ほげほげ [2003/12/08 13:26 ][環境:IE6.0 , WinXP Win2000Server , IIS]

ブラウザ(IE6.0)内に表示されているテキストの中から、
部分的に選択(マウスドラッグして反転)した文字列の
場所(文章内の位置)を取得したいです。
マウスで選択した文字列は取得できたのですが、
それが文章内のどこに記載された文字列なのかを知る方法が
わかりません。
具体的には、以下のように複数箇所に同じ文字列があった
場合でも、何番目(もしくは文章全体の何文字目)の文字列
なのか知りたいのです。
言語はJavaScriptを使って取得できればと思います。

<例>【ホームページ】を選択したことを、文字列・位置とも取得する。

ホームページの作成方法
【ホームページ】を作成するには、〜という手順で行います。
ホームページのトップページは、〜。


1:[回答] see [2003/12/09 13:45 ]

タグにIDは振ってあるのか。イベントのあった場所を拾うにも、どのようなイベントを発生させているのか等、情報がなさすぎて考えようがありません。
マウスで選択した文字列の取得ロジックと、タグを含めたBody部分を公開することはできませんか?


2:[回答] ほげほげ [2003/12/09 18:24 ]

特にタグがなくても、イベント(マウスのドラッグによるテキスト選択)があった場所を知りたいと思っています。
ブラウザ1で文字列を選択したら、別のブラウザ2で同じページを表示し、同じ場所を選択状態にすることを考えています。
文字列取得のロジックは以下の通りです。

<HEAD>
<script>
function selectText() {
 q=(document.frames.length?'':document.selection.createRange().text);
 for(i=0;i<document.frames.length;i++)
 {
    q=document.frames[i].document.selection.createRange().text;
    if(q!='')break;
 }
 // ここで、取得した文字列qを別ブラウザに通知する
}
</script>
</HEAD>
<BODY>
<H1 onMouseup=selectText()>
この部分に書かれた文字列を取得します
</H1>
</BODY>


3:[完了] ほげほげ [2003/12/17 17:18 ]

以下のようにして、位置を求めました。

Rng = document.selection.createRange();
Pos = document.body.createTextRange();
Pos.setEndPoint("EndToStart", Rng);
位置 = Pos.text.length;

ありがとうございました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World