我正在尝试在A anchorOffset
中获取用户选择的UIWebView
文字。我有一个简短的Javascript函数(下面),当用户选择文本并从自定义上下文菜单中选择一个选项时调用该函数。
function textPosition()
{
var text = window.getSelection();
var x = text.anchorOffset;
return x;
}
我在UIWebView
开头显示了一个简单的段落:
这是一个测试句子
如果我选择整个单词,一切都按预期工作......例如。如果我选择This
该函数返回0
,如果我选择sentence
,该函数将返回15
。
但是,如果我移动UIWebView
中所选文字的句柄,则anchorOffset
与预期不同。例如。在第一个单词this
中按如下顺序选择部分,将返回以下内容:
his
返回4
hi
返回1
Thi
返回3
此外,这取决于我更改选择的顺序:
This
返回0
Thi
返回0
hi
返回3
anchorOffset
似乎不同,取决于我改变选择的选择的结尾。
我的问题是:
谢谢!
答案 0 :(得分:0)
我现在明白我做错了什么。它源于我对anchor
实际上是什么的误解。我认为anchorOffset
引用选择地理位置的第一部分但实际上它与最初按下鼠标按钮的位置有关(显然不是触摸屏幕)。 focusOffset
与释放鼠标按钮的位置有关。
可以在这里找到更好的解释:
关于UIWebView
初始选择会将anchor
地理位置放在所选范围的开头,而focus
放在最后。但是,每次移动选择句柄时,它变为focus
,另一个句柄变为anchor
。