0

Voici un exemple de ce qui se passe: Il semble que lorsqu'une apostrophe est utilisée dans un mot tel que je suis, elle ne fonctionne pas dans ma chaîne lorsqu'elle est envoyée au javascript appel de fonction. J'ai lu à propos de l'ajout de backslash devant l'apostrophe comme si je suis, mais cela ne fonctionne toujours pas. J'ai remarqué sur la fonction js call onScan ('% @') que l'apostrophe ne peut pas être remplacée par "quotations" et que les parenthèses sont utilisées pour transmettre des paramètres qui n'aident pas non plus. La modification de NSMutableString en NSString ne modifie pas cet exemple ou n'affecte pas la réponse à cette requête. Toute aide est appréciée.Problème avec Objective c passant l'objet à l'appel de fonction javascript

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

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

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

    [webView stringByEvaluatingJavaScriptFromString:javascriptString]; 
+0

montrent le code où vous avez ajouté la barre oblique inverse pour le singlQuote. –

+0

cela a été mis à jour comme vous l'avez demandé. Merci! – Devdude

+0

pouvez-vous expliquer pourquoi cela fonctionne? – Devdude

Répondre

0

Pour échapper à une seule citation, vous avez besoin à double barre oblique inverse Essayez ceci:

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

Cela a fonctionné! .... J'ai mis à jour cette réponse mais j'ai reçu la réponse suivante de la pile "Merci pour les commentaires! Les votes émis par ceux avec moins de 15 réputation sont enregistrés, mais ne modifient pas le résultat affiché. – Devdude