Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在数据库中存储UIWebView突出显示的文本位置_Javascript_Iphone_Ios_Cocoa Touch_Uiwebview - Fatal编程技术网

Javascript 在数据库中存储UIWebView突出显示的文本位置

Javascript 在数据库中存储UIWebView突出显示的文本位置,javascript,iphone,ios,cocoa-touch,uiwebview,Javascript,Iphone,Ios,Cocoa Touch,Uiwebview,我正在进行一个电子阅读器项目,用户可以在其中突出显示他们感兴趣的文本。我已经能够通过以下代码突出显示文本: - (void)markHighlightedString:(id)sender { // The JS File NSString *filePath = [[NSBundle mainBundle] pathForResource:@"HighlightedString" ofType:@"js" inDirectory:@""]; NSData *fileData = [N

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

- (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];}
StylezeHighlightedString()是:

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


这可行吗?

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

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);}