简体   繁体   English

如何从目标C中的stringByEvaluatingJavaScriptFromString:方法执行长JavaScript?

[英]How to execute long javascript from stringByEvaluatingJavaScriptFromString: method in objective C?

I wanted to get all the values that user's typed in the input field of a webpage. 我想获取用户在网页的输入字段中键入的所有值。 I tried this code: 我尝试了这段代码:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{

    NSString *javaScript = @"var e = document.getElementsByTagName('input')for(var e in elements){if(e.type == 'text'){e.value}}";
    NSString *html = [myWebView stringByEvaluatingJavaScriptFromString:javaScript];

    NSLog(@"test of html: %@",html);

    return YES;
}

Seems like it's not working: 似乎不起作用:

If I know the id though: 如果我知道编号,则:

javaScript = @"document.getElementById('lst-ib').value";
NSString *html = [myWebView stringByEvaluatingJavaScriptFromString:javaScript];

It will work. 会的。

for (int i = 0; i<100; i++) {

    NSString *javaScript = [NSString stringWithFormat:@"document.getElementsByTagName('input')[%d].value",i];

    NSString *test = [NSString stringWithFormat:@"document.getElementsByTagName('input')[%d].name",i];

    NSString *html = [myWebView stringByEvaluatingJavaScriptFromString:javaScript];

    NSString *html2 = [myWebView stringByEvaluatingJavaScriptFromString:test];

    if (html.length > 2) {
        NSLog(@"Value %d: >>>> %@    %@",i,html,html2);
    }
}

This solved my query. 这解决了我的查询。 I didn't implemented long javascript but looped the code through objective c . 我没有实现冗长的javascript,而是通过目标c循环了代码。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM