1
我一直在四處尋找,並發現大量的代碼進行自動填充,看起來像:自動填充的UIWebView
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
//For Authentication
NSString *savedUsername = @"Bapu";
NSString *savedPassword = @"Bapu123";
if (savedUsername.length != 0 && savedPassword.length != 0)
{
//create js strings
NSString *loadUsernameJS = [NSString stringWithFormat:@"var inputFields = document.querySelectorAll(\"input[type='text']\"); \
for (var i = inputFields.length >>> 0; i--;) { inputFields[i].value = '%@';}", savedUsername];
NSString *loadPasswordJS = [NSString stringWithFormat:@"var inputFields = document.querySelectorAll(\"input[type='password']\"); \
for (var i = inputFields.length >>> 0; i--;) { inputFields[i].value = '%@';}", savedPassword];
//autofill the form
[webView stringByEvaluatingJavaScriptFromString: loadUsernameJS];
[webView stringByEvaluatingJavaScriptFromString: loadPasswordJS];
}
}
而這正是我在我的.m,但是,當我去到web視圖,這些字段保持空白。任何線索爲什麼它不能填補?
如果有幫助,我試圖填補該網站是:sis.ocsarts.net,以及相關的代碼是:
input type="text" size="20" name="UserName" value="" onkeydown="if (event.keyCode==13) { document.frmLogin.submit(); return false; };"
而且
input type="password" size="20" name="Password" onkeydown="if (event.keyCode==13) { document.frmLogin.submit(); return false; };"
完整的代碼爲我的FirstViewController .M是:
//
// FirstViewController.m
// OCSA
//
// Created by Jack Kearl on 4/1/13.
// Copyright (c) 2013 Jack Kearl. All rights reserved.
//
#import "FirstViewController.h"
@interface FirstViewController()
@end
@implementation FirstViewController
@synthesize Aeries;
- (void)viewDidLoad
{
[super viewDidLoad];
[Aeries loadRequest:[NSURLRequest requestWithURL:
[NSURL URLWithString:@"http://sis.ocsarts.net/login.asp"]]];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
//For Authentication
NSString *savedUsername = @"Bapu";
NSString *savedPassword = @"Bapu123";
if (savedUsername.length != 0 && savedPassword.length != 0)
{
//create js strings
NSString *loadUsernameJS = [NSString stringWithFormat:@"var inputFields = document.querySelectorAll(\"input[type='text']\"); \
for (var i = inputFields.length >>> 0; i--;) { inputFields[i].value = '%@';}", savedUsername];
NSString *loadPasswordJS = [NSString stringWithFormat:@"var inputFields = document.querySelectorAll(\"input[type='password']\"); \
for (var i = inputFields.length >>> 0; i--;) { inputFields[i].value = '%@';}", savedPassword];
//autofill the form
[webView stringByEvaluatingJavaScriptFromString: loadUsernameJS];
[webView stringByEvaluatingJavaScriptFromString: loadPasswordJS];
}
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
嗯,有趣的想法,但仍然無法填補領域...你知道任何其他方式嗎? – Jackson
我用http://sis.ocsarts.net/login.asp用你的代碼試過了,它工作正常。我也嘗試了以下函數:'NSString * loadUsernameJS = [NSString stringWithFormat:@「document.getElementsByTagName('input')[1] .value ='%@';」,savedUsername];' –
也許你可以發佈完整的代碼在你的視圖控制器。 –