0

UIWebViewにWebサイトを入力しようとしています。ウェブサイト自体よりも優れたログインビューをアプリに表示したい。したがって、バックグラウンドでUIWebViewがあります。ビューコントローラで作成したテキストフィールドをWebサイトのフォームに入力しようとしていますが、コードが機能しません。

Webサイトのフォームは次のとおりです。

<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

1回のJS呼び出しでそれを行うことができます:

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

PSHTMLコードの「name=」属性を「id=」に変更し、次のような要素にアクセスすることをお勧めします。

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