如何将文本从UIWebView打印到JavaScript表单?

时间:2013-03-25 14:49:20

标签: javascript objective-c forms uiwebview

我正在尝试用网站填充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');"];

}

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

1 个答案:

答案 0 :(得分: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];

P.S。使用&#39; id =&#39; 更改HTML代码中的&name =&#39; 属性是一个好主意。访问元素,如

document.getElementById('ssusername').value = 'smth';