特定的UIWebView选择(只有整个单词/句子)
Specific UIWebView Selections (only entire words/sentences)
我希望用户只能在我的UIWebView中选择整个句子。我在UIWebView中使用我自己的UIMenuItem(一个书签按钮)。我要保存这个书签(核心数据),并想确定哪个句子/节的重点是在。我以编程方式布局html(从sqlite数据库建立),并有一个<span id="x">
(其中x是一个可变整数)围绕每个句子。我知道亚马逊的Kindle应用程序只允许用户选择整个单词。我该怎么做呢?
谢谢!
您试过setMarkedText:selectedRange:
了吗?
Apple developer lib
更新:
虽然你不能在UIWebView
里面使用setMarkedText
,但没有办法,只能使用JavaScript。我不知道,你是否可以操作你所显示的HTML页面?您可以在页面中添加此脚本。如果你不能操作这个页面,你应该在你的UIWebView
中加载一个iframe
来加载你的实际页面,在iframe
之后添加这个脚本。
脚本如下:
document.addEventListener('mouseup', function(){
if(getSelection().anchorNode != null ){
var sel = getSelection(),
range = sel.getRangeAt(0),
nodeValue = sel.anchorNode.nodeValue,
lastCharIndex = range.endOffset,
firstCharIndex = range.startOffset,
lastChar = nodeValue.substr(lastCharIndex, 1),
firstChar = nodeValue.substr(firstCharIndex, 1);
while(lastChar != (" " || ".")){
lastChar = nodeValue.substr(lastCharIndex, 1);
lastCharIndex++;
};
while(firstChar != " "){
firstChar = nodeValue.substr(firstCharIndex, 1);
firstCharIndex--;
};
range.setEnd(sel.anchorNode, lastCharIndex-1);
sel.addRange(range);
range.setStart(sel.anchorNode, firstCharIndex+2);
sel.addRange(range);
}
}, false);
我在iPhone上测试了一下,运行正常。
这是Demo(只需选择一些内容)。我在上面花了很多时间。我希望你喜欢。
相关文章:
- 使用jQuery检查提交时添加到句子中的单词
- 如何使用Javascript在给定的句子中找到大写单词并在其前面添加一个字符
- 获取特殊字符后没有单词的句子
- 我怎么能用css或(angular)javascript把句子分成两行,只在特定单词后面
- 找出句子中最长的单词——Javascript
- undercore返回数组中对象的indes,其中单词存在于对象中的句子中
- 如何按从当前单词到段落中该句子(.)结尾的范围选择文本
- regex过滤单词长度最小的句子
- Regex帮助:将单词分解以完成句子测验
- JavaScript只接收句子中的第一个单词
- 在jQuery中,只从句子中获取单词或数字的一部分
- 使用正则表达式提取句子中的最后几个单词
- 我如何在 Java 脚本中找到句子中单词的出现次数
- 计算长字符串中每个句子的单词,jQuery
- 将句子或驼峰大小写单词转换为棘壳
- JavaScript 正则表达式匹配句子中的单词
- 将句子字符串拆分为单词数组,然后将单词数组拆分为单词数组中的字符数组
- 正则表达式检查句子的单词
- 特定的UIWebView选择(只有整个单词/句子)
- 如何通过链接证明页面中的单词(句子)