如何在wkWebview / webView中从objective-C更改`<input />`元素属性(例如value)

时间:2017-03-24 07:12:50

标签: javascript objective-c webview wkwebview

好的,我从这个网站找到了某些links

但问题是如果标签不包含id或名称?

<input type="email" class="_style_3vhmZK" placeholder="Email: name@example.com" value="" data-reactid="49">

我试过这样:

尝试编号1:

 NSString *javaScript1 = @"var passFields = document.document.getElementsByTagName('input'); \
            passFields[0].setAttribute('value','Naman')";   [webView evaluateJavaScript:javaScript1 completionHandler:nil];

TRY Number 2

 NSString *javaScript = @"document.getElementsByTagName('input')[0].setAttribute('value','Naman Vaishnav');";    [webView evaluateJavaScript:javaScript1 completionHandler:nil];

但仍未达到目标,如果我犯了任何错误,请启发我......

1 个答案:

答案 0 :(得分:1)

通过标签完成,欢迎使用更充分的方式,如果有的话,

  NSString *javaScript1 = @"var passFields = document.getElementsByTagName('input'); \
           for (var i = passFields.length>>> 0; i--;) { if(passFields[i].placeholder == 'Email: name@example.com'){ passFields[i].value ='%@';}}";

            NSString *javascriptWithCSSString = [NSString stringWithFormat:javaScript1,emailInfo[0]];
            [webView evaluateJavaScript:javascriptWithCSSString completionHandler:nil];