【问题标题】:How to print text from UIWebView to JavaScript form?如何将文本从 UIWebView 打印到 JavaScript 表单?
【发布时间】:2013-03-25 14:49:20
【问题描述】:

我正在尝试使用网站填充 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 字符串有问题。

【问题讨论】:

    标签: javascript objective-c forms uiwebview


    【解决方案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];
    

    附:用 'id=' 更改 HTML 代码中的 'name=' 属性并访问像

    这样的元素是个好主意
    document.getElementById('ssusername').value = 'smth';
    

    【讨论】:

    • 谢谢!我试过了,但是当我输入 textField username.text 时,网站上的表单中没有出现任何内容。我在后台设置了 UIwebView,alpha 设置为低,所以我可以查看是否发生了任何事情。还有什么可能是错的吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 2018-08-13
    • 1970-01-01
    相关资源
    最近更新 更多