2011-12-03 42 views
0

我正在嘗試獲取用戶在A UIWebView中選擇的文本anchorOffset。當用戶選擇文本並從自定義上下文菜單中選擇一個選項時,我會調用一個簡短的JavaScript函數(見下文)。anchorOffset是否可以正確使用UIWebView?

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

我有一個簡單的段落顯示在UIWebView開始:

這是一個測試句子

一切正常,如果我選擇一個全字如預期...如。如果我選擇This函數返回0,如果我選擇sentence函數返回15

但是如果我移動的把手,所選文本的UIWebViewanchorOffset與預期不同。例如。選擇部在上述訂單中的第一個字如下,this返回如下:

his返回4

hi返回1

Thi返回3

此外,這是不同取決於量級我改變了選擇:

This返回0

Thi返回0

hi返回3

看來,anchorOffset取決於從其中選擇的端予改變的選擇是不同的。

我的問題是:

  1. 上午我做一個明顯的錯誤?
  2. 這是預期的行爲?
  3. 有什麼我可以做的,使結果一致?

謝謝!

回答

0

我現在明白我做錯了什麼。它來自我對anchor究竟是什麼的誤解。我認爲anchorOffset參考的第一部分的地理選擇,但實際上它涉及最初按下模糊按鈕(顯然不在觸摸屏上)。 focusOffset涉及釋放鼠標按鈕的位置。

一個更好的解釋可以在這裏找到:

mozilla developer site

關於一個UIWebView的初始選擇將放置anchor地理上在所選擇的範圍的開始和focus末。但是,每次移動選擇句柄時,它將變爲focus,另一個句柄變爲anchor