2010-11-16 5 views

Répondre

12

Eh bien, voici ce que nous appelons stringly typée.

Parce que le type de retour de stringByEvaluatingJavaScriptFromString: est NSString *, soit vous devez coller à l'aide d'une chaîne ou de contraindre la valeur dans une autre (lecture: plus utilisable) type.

Mais de toute façon, stringByEvaluatingJavaScriptFromString: vous retournera la valeur d'une variable JavaScript sans problème.

La façon dont cela se fait est grâce à l'utilisation d'une fonction anonyme (qui dans ce cas est l'auto-exécution):

NSString *numOfElements = [webView stringByEvaluatingJavaScriptFromString:@"(function() {var elems = document.body.getElementsByTagName(\"u\"); return elems.length;})();"]; 

//do normal stuff with numOfElements like cast to an int or something cool like that. 
+0

Pourriez-vous s'il vous plaît me aider à ce trop http://stackoverflow.com/ questions/10793698/comment faire une image-maps-clickable-using-uiwebview-in-iphone –

3

Vous devez avoir une déclaration de retour dans votre javascript. Il peut y avoir de meilleures façons de le faire, mais ce qui suit javascript fonctionne pour moi:

NSString* findLink = @"function f() {var x = document.getElementsByTagName('a'); 
if(x.length > 0) { return x[0].getAttribute('href');}; return null;} f(); "; 

Essayez d'utiliser ce code:

[webView stringByEvaluatingJavaScriptFromString:@"function f() {var elems = 
document.body.getElementsByTagName(\"u\"); return elems.length;}f();"]; 
Questions connexes