0

我正在尝试使用网站填充 UIWebView。我希望应用程序显示比网站本身更好的登录视图。因此,我在后台有一个 UIWebView 。我正在尝试用我在视图控制器中创建的文本字段填写网站上的表单,但我的代码不起作用。

这是网站上的表格:

<div class="centerloginform">

<form name="userForm" action="Login.jsp" method="post" autocomplete="off">
  <input type="hidden" name="action" class="hidden" id="action" value="login" />
  <div class="loginheader">Logga in</div>

  <div class="login_formtable">
    <label class="login_label">Jag är</label>
    <div id="loginselect" style="clear:both:">
      <select name="usertype" size="1"  id="usertype" class="select1" >   
        <option value="0"  selected="selected">Personal</option>
        <option value="1" >Elev</option>
        <option value="2" >Vårdnadshavare</option>
      </select>
    </div>

    <label class="login_label">Användarnamn</label>
    <input autocomplete="off" type="text" value="" name="ssusername" size="20" maxlength="50" />
    <label class="login_label">Lösenord</label>
    <input autocomplete="off" type="password" name="sspassword" size="20" maxlength="20" value=""/>

    <div><input type="submit" name="button" value="Logga in"  class="btn btn-primary" />
    </div>
    <br />
    <center>

这是我的代码:

- (IBAction)submit:(id)sender {


    NSString *loadUsernameJS = [NSString stringWithFormat:@"document.getElementsByName('ssusername') ssusername.value='%@';", _username.text];

    NSString *loadPasswordJS = [NSString stringWithFormat:@"document.getElementsByName('sspassword')[0]; sspassword.value='%@';", _password.text];

    [self.webView stringByEvaluatingJavaScriptFromString: loadUsernameJS];
    [self.webView stringByEvaluatingJavaScriptFromString: loadPasswordJS];

    [self.webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByClassName('btn btn-primary');"];

}

任何人都可以帮助我,以便用户在应用程序的文本字段中写入的文本以网站上的形式打印吗?我怀疑我的 JavagetElementsBy字符串有问题。

4

1 回答 1

0

你可以在一个 JS 调用中做到这一点:

NSString *submitFormJS = [NSString stringWithFormat:
                          @"document.getElementsByName('ssusername')[0].value='%@';"
                          "document.getElementsByName('sspassword')[0].value='%@';"
                          "document.getElementsByName('userForm')[0].submit();",
                          _username.text, _password.text];

PS 这是一个好主意,用'id='更改HTML 代码中的'name='属性并访问类似的元素

document.getElementById('ssusername').value = 'smth';
于 2013-03-25T15:51:11.530 回答