2010-11-16 28 views

Respuesta

12

Bueno, esto es lo que llamamos stringly mecanografiadas.

Debido a que el tipo de retorno de stringByEvaluatingJavaScriptFromString: es NSString *, que o bien tiene que atenerse a la utilización de una cadena o coaccionar el valor en alguna otra (lectura: más utilizable) tipo.

Pero de todos modos, stringByEvaluatingJavaScriptFromString: devolverá el valor de una variable de JavaScript sin problema.

La forma en que esto se lleva a cabo es mediante el uso de una función anónima (que en este caso es de aplicación directa):

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

¿Me podría ayudar en esto también http://stackoverflow.com/ preguntas/10793698/how-to-make-image-maps-clickable-using-uiwebview-in-iphone –

3

Usted necesita tener una instrucción de retorno en su Javascript. Puede haber mejores maneras de hacerlo, pero el siguiente JavaScript funciona para mí:

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

Trate de usar este código:

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