0

ここでは何が起こっているかの例を示します。アポストロフィが私のような単語で使用されているときに、javascript関数呼び出し。私はアポストロフィの前にバックスラッシュを追加する方法について読んだが、これはまだうまくいかない。私はjs関数呼び出しonScan( '%@')に気付きました。アポストロフィを "引用"に置き換えることはできません。また、大括弧を使ってパラメータも渡すことはできません。また、NSMutableStringをNSStringだけに変更しても、この例は変更されず、この要求の回答に影響しません。どんな助けもありがとうございます。Objective cでオブジェクトをJavaScript関数呼び出しに渡す問題

NSMutableString*messagText= @"I'm posting on stack."; 

    messageText = [[messageText stringByReplacingOccurrencesOfString:@"'" 
                 withString:@"\'"] 
                 mutableCopy]; 

    NSString *javascriptString = [NSString stringWithFormat:@"onScan('%@')", messageText]; 

    [webView stringByEvaluatingJavaScriptFromString:javascriptString]; 
+0

あなたはsinglQuoteのためにバックスラッシュを追加したコードを示しています。 –

+0

リクエストされたとおりに更新されました。ありがとう! – Devdude

+0

これはなぜ機能するのですか? – Devdude

答えて

0

単一引用符をエスケープするには、二重のバックスラッシュを必要とする はこれを試してみてください:

NSString *messagText= @"I'm posting on stack."; 
if ([messagText containsString:@"'"]) { 
     messagText = [NSString stringWithFormat:@"onScan('%@')",[messagText stringByReplacingOccurrencesOfString:@"'" withString:@"\\'"]]; 
} 
[webView stringByEvaluatingJavaScriptFromString: messagText]; 
+0

これはうまくいきました!....私はこの回答をupvotedしかし、私はスタックから "返信をいただきありがとうございます!15未満の評判を持つ人の投票が記録されますが、公開されたポストスコアを変更しないでください。 – Devdude

関連する問題