无法在UIWebview中突出显示文本?

时间:2013-07-18 11:20:37

标签: javascript ios objective-c uiwebview

我一直致力于在UIwebview中突出显示文本。在那里我使用了canPerformAction方法,其中我调用javascript函数来突出显示文本。让我的webview中的文字是 “这部分是如此令人困惑和非常零星”。 如果我单独选择“so”文本就没有问题,它突出显示文本。

但是让我选择超过1个单词,如“so confusing and”它突出显示但它会运行到无限循环并且继续调用canPerformAction方法。我无法弄清楚它为什么会发生。

在iPad中,如果您长按选定的文本。我的方法在这里调用并突出显示所选文本。然后,如果我拖动蓝线以选择更多文本(我希望你能理解我在说什么),因为canPerformAction被调用并且它会进入无限循环。

我正在检查模拟器。

更新 我试过你告诉我们的那些事情如下

NSString *selectedString = @"function getSelText()"
                                "{"
                                "alert('document.execute');"
                                "var sel = window.getSelection();"
                                "if(!sel.isCollapsed){"
                                "var selRange = sel.getRangeAt(0);"
                                "document.designMode = 'on';"
                                "sel.removeAllRanges();"
                                "sel.addRange(selRange);"
                                "alert('document.execute 2');"
                                "document.execCommand('HiliteColor', false, '#ffffcc');"
                                "alert('document.execute 3');"
                                "sel.removeAllRanges();"
                                "document.designMode = 'off';"
                                "alert('document.execute 4');"
                                "}"
                                "}";
[webView stringByEvaluatingJavaScriptFromString:selectedString];

I have given the above code in webViewDidFinishLoad.

In CanPerformAction I gave
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{

    if(action == @selector(selectAll:)){

        NSString *setHighlightColorRuling = [NSString stringWithFormat:@"getSelText()"];
        [webView stringByEvaluatingJavaScriptFromString:setHighlightColorRuling];

        return YES;

    }
    return [super canPerformAction:action withSender:sender];

}

在模拟器中运行警报,直到最后一个“document.execute 4”出现,但在webview中没有效果

1 个答案:

答案 0 :(得分:3)

请参阅此链接:

UIWebView Text Highlighting solution

对您有所帮助。

祝你好运!!!