0

我正在开发一个电子阅读器项目,用户可以在其中突出显示他们感兴趣的文本。我已经能够通过这段代码突出显示文本:

- (void)markHighlightedString:(id)sender {

// The JS File
NSString *filePath  = [[NSBundle mainBundle] pathForResource:@"HighlightedString" ofType:@"js" inDirectory:@""];
NSData *fileData    = [NSData dataWithContentsOfFile:filePath];
NSString *jsString  = [[NSMutableString alloc] initWithData:fileData encoding:NSUTF8StringEncoding];
[self.bookTextWebView stringByEvaluatingJavaScriptFromString:jsString];

// The JS Function
NSString *startSearch   = [NSString stringWithFormat:@"stylizeHighlightedString()"];
[self.bookTextWebView stringByEvaluatingJavaScriptFromString:startSearch];}

stylizeHighlightedString() 是:

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.color            = "red";

range.insertNode(span);}

现在,我想将这个突出显示的文本信息保存在数据库中,以便下次运行应用程序时可以显示以前突出显示的文本。

这是可行的吗?

4

1 回答 1

0

为此,您可以将正在使用的脚本分成两个脚本。第一个将查询所选范围并返回它。您可以解析返回的范围并为其创建一个 (Obj-)C 对象并存储它。第二个脚本将对提供的范围/范围进行实际突出显示。为此,您需要通过将范围作为 javascript 变量预先添加到 javascript 字符串来动态组合 javascript。

于 2012-11-09T08:12:35.600 回答