我一直在努力突出显示uiwebview中的文本。在这个过程中,我使用了canperformation方法,在这个方法中,我调用一个javascript函数来突出显示文本。让我们在我的网络视图中获取文本是
“这部分太混乱了,而且非常零散”。
在这里,如果我选择文本“所以”单独没有问题,它是突出显示的文本。
但是让我们假设我选择了不止一个单词,比如“sofcomplying and”,它会突出显示,但它运行在一个无限循环中,并不断调用canperformation方法。我不明白为什么会这样。
在ipad中,如果你长按要选择的文本。这里调用我的方法并突出显示选定的文本。然后,如果我拖动蓝色的线来选择更多的文本(我希望你能理解我的意思),那么canperformation就会被调用,并进入无限循环。
我正在检查模拟器。
更新:
我试过你说过的话
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中没有效果
最佳答案
请参考此链接:
UIWebView Text Highlighting solution
可能对你有帮助。
祝你好运!!!!
关于javascript - 无法在UIWebview中突出显示文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17722033/