如何在UIWebView上创建持久性突出显示(包含epub内容),以便他可以在访问该页面时查看它。我得出的结论是,我成功获取了所选文本的索引,我可以将其保存在数据库中。
我需要使用从开始到结束索引的图形来创建透明矩形。但是如何知道文本的坐标,以便我可以在上面绘制矩形。
答案 0 :(得分:0)
function stylizeHighlightedString()
{
var range = window.getSelection().getRangeAt(0);
var selectionContents = range.extractContents();
var span = document.createElement("span");
span.appendChild(selectionContents);
span.setAttribute("class","uiWebviewHighlight");
span.style.backgroundColor = "red";
span.style.color = "white";
range.insertNode(span);
}
答案 1 :(得分:0)
为了在epub中进行永久性突出显示,请在要突出显示的字符串中添加一个范围,然后重写该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:currentChapter.spinePath atomically:YES];