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

このために、使用しているスクリプトを 2 つのスクリプトに分けることができます。最初のものは、選択された範囲を照会し、それを返します。返された範囲を解析し、(Obj-)C オブジェクトを作成して保存することもできます。2 番目のスクリプトは、指定された範囲を実際に強調表示します。そのためには、範囲を javascript 変数として javascript 文字列に前置することによって、javascript を動的に構成する必要があります。

于 2012-11-09T08:12:35.600 に答える