Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从stringByEvaluatingJavaScriptFromString:方法在目标C中执行长javascript?_Javascript_Ios_Objective C_Uiwebview - Fatal编程技术网

如何从stringByEvaluatingJavaScriptFromString:方法在目标C中执行长javascript?

如何从stringByEvaluatingJavaScriptFromString:方法在目标C中执行长javascript?,javascript,ios,objective-c,uiwebview,Javascript,Ios,Objective C,Uiwebview,我想获得用户在网页的输入字段中输入的所有值。我尝试了以下代码: - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSString *javaScript = @"var e = document.getElementsByTagName('inpu

我想获得用户在网页的输入字段中输入的所有值。我尝试了以下代码:

- (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;
}
似乎它不起作用了:

但如果我知道身份证:

javaScript = @"document.getElementById('lst-ib').value";
NSString *html = [myWebView stringByEvaluatingJavaScriptFromString:javaScript];
它会起作用的

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);
    }
}
这解决了我的疑问。我没有实现长javascript,而是通过objective c循环代码