如果你渲染HTML文件,那么你也许能够以下面的方式来完成。它突出显示用户文本,然后通过重写html文件将其保存,从而保留高亮显示。
NSString *uuid = [[NSUUID UUID] UUIDString];
NSString *insertSpan = [NSString stringWithFormat:@"var range = window.getSelection().getRangeAt(0);var selectionContents = range.extractContents();alert(selectionContents); var span = document.createElement(\"span\");span.appendChild(selectionContents);span.setAttribute(\"class\",\"uiWebviewHighlight\");span.style.backgroundColor = \"#99FF00\";span.setAttribute(\"id\", \"%@\");range.insertNode(span);",uuid];
[webView stringByEvaluatingJavaScriptFromString:insertSpan];
NSString *document = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].innerHTML"];
NSData *data = [document dataUsingEncoding:NSUTF8StringEncoding];
[data writeToFile:<file location> atomically:YES];
有没有办法存储用户选定文本的节点,起始值和最终值,以在下一个会话中突出显示它? – Mani
看到这个链接: [link1](http://stackoverflow.com/questions/6903292/uiwebview-css-injection-using-javascript) 和 [link2](http://stackoverflow.com/questions/ 4579304 /怎么办-I-扩大-的蓝色高亮文本功能于UIWebView中) – NrNazifi