【问题标题】:How to execute long javascript from stringByEvaluatingJavaScriptFromString: method in objective C?如何从目标C中的stringByEvaluatingJavaScriptFromString:方法执行长javascript?
【发布时间】:2015-04-02 03:45:40
【问题描述】:

我想获取用户在网页输入字段中输入的所有值。我试过这段代码:

- (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;
}

好像不行:

如果我知道 id:

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

它会起作用的。

【问题讨论】:

    标签: javascript ios objective-c uiwebview


    【解决方案1】:
    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循环了代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-16
      • 1970-01-01
      • 2016-07-05
      • 1970-01-01
      相关资源
      最近更新 更多