1

マウスがURLの上にあるかどうかを確認するために範囲を使用しようとしていますが、その中の各単語だけでなく、完全なURLを取得するために範囲を拡大する方法がわかりません。

問題を示す例を次に示します

このコードを編集可能な iframe で使用します。ユーザーが URL を書いた場合、アンカー要素ではなくプレーン テキストであっても、それを開くことができるようにしたいと考えています。それを達成できるかどうかはわかりませんが、試してみたいと思います。

4

1 に答える 1

0

問題の 1 つはexpand()、Range のメソッドが非標準であり、WebKit でのみサポートされていることです。もう 1 つは、これdocument.caretRangeFromPoint()も WebKit 専用です。もう 1 つの問題は、単語を識別するときに一致する正規表現を指定する方法がないことです。

1 つのオプションは、Rangyライブラリの新しいTextRange モジュールです。これは、すべての主要なブラウザーで動作し、範囲のより柔軟な方法を提供します。のクロスブラウザー実装を提供する進行中の位置モジュールもあります(これは として標準化されています)。expand()document.caretRangeFromPoint()document.caretPositionFromPoint()

残念ながら、Firefox の position モジュールは不安定ですが、すぐに修正する予定です。また、jsFiddle に関連すると思われる理由により、現時点では次のデモは IE では動作しません。したがって、全体としてこれは満足のいくものではありませんが、いくつかのアイデアが得られるかもしれません.

ライブデモ: http://jsfiddle.net/q3AtL/5/

于 2012-09-09T08:47:25.723 に答える