如何在UIwebview上添加注释

时间:2011-02-23 02:14:10

标签: objective-c ios4 uiwebview uimenucontroller

我想实现一个功能,例如在UIWebview上添加选定文本的注释,就像iBooks和亚马逊Kindle一样。

我已经创建了UIMenuItem。但是,我不知道如何为此实现该方法。在这方面有人可以提供帮助吗?

我不知道在这个方法中使用了什么功能。感谢。

- (void)Note:(id)sender {
    NSString *selection = [webView stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"]; 
}

1 个答案:

答案 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()"];