1

Objective C のファイルから読み取った HTML 文字列マークアップを渡し、それをパラメータを取る JavaScript 関数に渡すにはどうすればよいですか?

私の webViewDidFinishLoad では、このように呼び出そうとします

NSString *jsfile = [[NSBundle mainBundle] pathForResource:@"setcontent" ofType:@"js"];
NSString *js = [NSString stringWithContentsOfFile:jsfile encoding:NSUTF8StringEncoding error:&errDes];
[webView stringByEvaluatingJavaScriptFromString:js];
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"showHtml('%@');", filecontent]];

私のJavaScriptファイルには関数がロードされています

function showHtml(param1)
{
    alert(param1);
    document.getElementById('section1').innerHTML = param1;
}

のような明示的な文字列値を使用してこのコードをテストし@"<p id=\"cid1\"> test </p>"、要素の内容を設定することで機能します。これを@"<p id='cid1'> test </p>"id 属性に一重引用符を付けて変更すると、機能しません。後者を機能させるには、目的の C コードで文字列フォーマッタ '%@' を \"%@\" に変更する必要があります。

上記の問題はそれほど深刻ではありませんが、div 要素の #section1 に innerHTML として設定する必要がある複数の html タグを含むリソース ファイルの内容を読み取る場合、どちらの方法でも機能しません。

何らかの方法でコンテンツをエンコードする必要がありますか? stringByEvaluatingJavaScriptFromString メソッドを呼び出す前に? 誰が私に指摘してもらえますか、何が間違っていますか? 誰かがこれを行うより良い方法を知っている場合は、書いてください。

敬具

4

1 に答える 1

0

ここには長さ制限があり、ファイル全体をjsに渡すときにそれに遭遇するようです

于 2012-12-12T22:56:48.383 に答える