12

UIWebViewJSONを:に渡そうとすると、JavaScriptでこのエラーが発生し続けます。

SyntaxError:予期しないEOF

で使用できる行番号やファイル名はありませんがwindow.onerror、参照されているすべてのファイルをすでに確認しており、問題ありません。

私はEvaluateJavaScriptObjCと同等のMonoTouchメソッドを使用していstringByEvaluatingJavaScriptFromString:ます:

webView.EvaluateJavascript(
    "Viewer.init($('#page'), " + json.ToString() + ");"
);

「単純な」JSON入力では問題なく機能しますが、大きなオブジェクトでは機能しません。
何がうまくいかない可能性がありますか?

4

2 に答える 2

25

NSString を UIWebView に渡す前に、必ず改行と一重/二重引用符をエスケープしてください。

NSString *html = @"<div id='my-div'>Hello there</div>";

html = [html stringByReplacingOccurrencesOfString:@"\'" withString:@"\\\'"];
html = [html stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];
html = [html stringByReplacingOccurrencesOfString:@"\n" withString:@"\\n"];
html = [html stringByReplacingOccurrencesOfString:@"\r" withString:@""];

NSString *javaScript = [NSString stringWithFormat:@"injectSomeHtml('%@');", html];
[_webView stringByEvaluatingJavaScriptFromString:javaScript];
于 2014-04-02T12:09:01.650 に答える
5

どうやら、 JSONで改行をエスケープするのを忘れたため、UIWebViewの「予期しないEOF」を作成しました。

于 2012-07-13T21:01:52.843 に答える