2011-12-03 3 views
0

anchorOffsetのテキストをA UIWebViewでユーザーが選択しようとしています。ユーザーがテキストを選択してカスタムコンテキストメニューからオプションを選択したときに呼び出される短いJavascript関数(下記)があります。 ...anchorOffsetはUIWebViewで正しく機能しますか?

これは

すべては私が単語全体を選択した場合は期待どおりに動作テスト文である例:

function textPosition() 
{ 
    var text = window.getSelection(); 
    var x = text.anchorOffset; 
    return x; 
} 

は、私は簡単な段落が始まる UIWebViewに表示されてい。 Thisを選択すると、関数は 0を返します。 sentenceを選択すると、関数は 15を返します。

UIWebViewの選択されたテキストのハンドルを移動すると、anchorOffsetが予想外のものになります。例えば。 1つの

Thi戻り

また、これは異なっている3が順序に依存4

hi戻り

his戻り値:最初の単語で次のように順番に部分を選択、this以下返します選択を変更する:

This返信0

Thi戻り0

hi戻り3

anchorOffset私が選択を変更する選択のどちらの端部からによって異なると思われます。

私の質問は以下のとおりです。

  1. 私は明らかに間違っているのでしょうか?
  2. これが期待どおりの動作ですか?
  3. 結果を一致させるためにできることはありますか?

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

答えて

0

私は間違っていたことを理解しました。それはanchorが実際に何であるかについての私の誤解から来た。 anchorOffsetの最初の部分の選択を地理的にと呼んでいたと思っていましたが、実際はマウスのボタンが最初に押された場所(明らかにタッチスクリーンではありません)に関係していました。 focusOffsetは、マウスボタンがリリースされた場所に関連しています。

よりよい説明はここで見つけることができます:UIWebView最初の選択に関して

mozilla developer site

は、選択した範囲と終わりにfocusの開始時に、地理的にanchorを配置します。ただし、選択ハンドルを移動するたびにfocusとなり、もう一方のハンドルはanchorになります。

関連する問題