我想实现一个功能,例如在UIWebview
上添加选定文本的注释,就像iBooks和亚马逊Kindle一样。
我已经创建了UIMenuItem
。但是,我不知道如何为此实现该方法。在这方面有人可以提供帮助吗?
我不知道在这个方法中使用了什么功能。感谢。
- (void)Note:(id)sender {
NSString *selection = [webView stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"];
}
答案 0 :(得分:0)
有问题的JavaScript旨在为您提供在您选择中突出显示的文字。
我不确定在元素上运行toString会返回正确的信息。以下方法将返回突出显示的文本并将其保存到变量中。
function getHighlightedString() {
var text = window.getSelection();
myAnchorOffset = text.anchorOffset;
myFocusOffset = text.focusOffset;
myHighlightLength=myFocusOffset-myAnchorOffset;
if(myHighlightLength<0)
{
myHighlightLength*=-1;
temp = myAnchorOffset;
myAnchorOffset = myFocusOffset;
myFocusOffset = temp;
}
selectedText = text.anchorNode.textContent.substr(myAnchorOffset, myFocusOffset - myAnchorOffset);
}
将此方法加载到webview中
NSString myHighlightedText = [webView stringByEvaluatingJavaScriptFromString:@"getHighlightedString()"];