[英]Programmatically fill in data in a UIWebview
在我的應用程序中,我希望能夠讓用戶在自定義視圖中輸入他們的登錄信息,然后顯示UIWebView。 我希望UIWebView以編程方式填入用戶的用戶名和密碼。 然后UIWebView應以編程方式單擊登錄按鈕。 我一直在努力:
[webView stringByEvaluatingJavaScriptFromString:@"document.L_lbsc_txtUserName.text.value='ANdrew';"];
但它不起作用。 我真的不明白stringByEvaluatingJavaScriptFromString
如何工作或它的設計目的。
我認為這可能與我在上面的字符串字段填寫的內容有關。 這是我試圖訪問的網站的源代碼:
<div class="lgntxt">
<div style="padding-left:3px;">
<input name="L$lbsc$txtUserName" type="text" value=" -username-" size="10" id="L_lbsc_txtUserName" tabindex="1" class="textbox" onfocus="if(this.value == ' -username-') this.value = ''; Hide('L_lbsc_txtPasswordHelp'); Show('L_lbsc_txtPassword');" onblur="if(this.value == '') this.value = ' -username-';" style="width:80px;"><br>
<img src="/podium/images/spacer.gif" border="0" width="3" height="1"><br>
<input name="L$lbsc$txtPasswordHelp" type="text" value=" -password-" size="10" id="L_lbsc_txtPasswordHelp" tabindex="1" class="textbox" onfocus="Hide('L_lbsc_txtPasswordHelp'); Show('L_lbsc_txtPassword'); document.getElementById('L_lbsc_txtPassword').focus();" style="width:80px;display:;">
<input name="L$lbsc$txtPassword" type="password" size="10" id="L_lbsc_txtPassword" tabindex="2" class="textbox" onkeydown="if ((event.which ? event.which : event.keyCode) == 13) {return false;};" onkeyup="if ((event.which ? event.which : event.keyCode) == 13) {__doPostBack('L$lbsc$btnLogin','');return false;};" onblur="if(this.value == '') {Show('L_lbsc_txtPasswordHelp'); Hide('L_lbsc_txtPassword');}" style="width:80px;display:none;">
</div>
</div>
我正在嘗試替換用戶名和密碼字段。
任何幫助將不勝感激。 提前致謝。
編輯,所以我嘗試了這些,但沒有一個工作:
[webView stringByEvaluatingJavaScriptFromString:@"document.myForm.myText.value='text from Obj-C';"];
[webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('L$lbsc$txtUserName').value='ANdrew';"];
該方法接受JavaScript,在文檔的上下文中執行它,然后將結果返回給您。 看來你的JavaScript是錯的。 嘗試:
[webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('L$lbsc$txtUserName').value='ANdrew';"];
如果您不確定方法的作用,請轉到iOS參考庫 ,找到您正在使用的類的類引用 ,然后向下滾動到您正在使用的方法的描述 。
Bil,我能夠讓我的工作與下面的工作。 基本上,ID為'logon-field'
的元素就是這樣。 我將JavaScript分成多行,以便我可以插入我的變量(來自我的自定義屏幕中的UITextField's
用戶輸入值,在我的UIWebView
之上)並連接。 我將以下代碼放在視圖控制器中的textFieldShouldReturn
:方法中,以便在用戶輸入文本字段之前不會運行此代碼。
NSString *logonJSStart = @"document.getElementById('logon-field').value='";
NSString *logonWithValue = [logonJSStart stringByAppendingString:self.logon.text];
NSString *logonJSFinal = [logonWithValue stringByAppendingString:@"';"];
[webView stringByEvaluatingJavaScriptFromString:logonJSFinal];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.