Javascript 在UIWebView中打开的HTML页面中自动填充用户名和密码
我正在保存用户在UIWebView中打开的HTML页面中输入的用户名和密码数据。现在,我想做的是把用户名和密码放回各自的字段中,然后提交表单,我希望这个功能几乎适用于任何类型的网站 目前,我能够使用JavaScript将数据放回各自的字段中。我的问题是,当网页上有多个表单时,如何识别填充了值的表单Javascript 在UIWebView中打开的HTML页面中自动填充用户名和密码,javascript,iphone,ipad,uiwebview,autofill,Javascript,Iphone,Ipad,Uiwebview,Autofill,我正在保存用户在UIWebView中打开的HTML页面中输入的用户名和密码数据。现在,我想做的是把用户名和密码放回各自的字段中,然后提交表单,我希望这个功能几乎适用于任何类型的网站 目前,我能够使用JavaScript将数据放回各自的字段中。我的问题是,当网页上有多个表单时,如何识别填充了值的表单 此外,在我的应用程序开发过程中,我发现一些网站出于安全原因不允许填充密码字段。我应该使用什么JavaScript代码来实现此功能?简而言之,我能想到的唯一答案是java脚本。假设UIWebView对象
此外,在我的应用程序开发过程中,我发现一些网站出于安全原因不允许填充密码字段。我应该使用什么JavaScript代码来实现此功能?简而言之,我能想到的唯一答案是java脚本。假设UIWebView对象是*webView。使类支持UIWebViewDelegate,然后将该委托分配到适当的位置:
// In viewDidLoad or somewhere appropriate.
self.webView.delegate = self;
UIWebView委托函数
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *fillAndSubmit = [NSString stringWithFormat:@"<--- javascript --->",username,password];
NSString *output = [webView stringByEvaluatingJavaScriptFromString:fillAndSubmit];
// Any other stuff you need to do.
}
-(void)webViewDidFinishLoad:(UIWebView*)webView
{
NSString*fillAndSubmit=[NSString stringWithFormat:@',用户名,密码];
NSString*输出=[webView stringByEvaluatingJavaScriptFromString:fillAndSubmit];
//你需要做的任何其他事情。
}
上面是一个粗略的大纲,替换为javascript代码,将用户名和密码填入相关表单并提交。如果加载的页面使用JQuery,您可以在javascript中使用JQuery
至于要使用的javascript,这完全取决于所讨论的网页,因此我可以在这方面提供帮助。嘿,伙计,我希望这将在web视图中帮助您
- (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];
}
}
谢谢你的回答,但你给出的代码已经被我的应用程序实现了。我需要java脚本或JQuery代码放在那里,这几乎适用于任何网页。在开发我的应用程序的过程中,我遇到了各种网页,它们只允许自动填充用户名字段,而密码字段为空。例如:mail.google.com的登录页面只自动填充用户名字段。现在我应该使用什么Javascript/JQuery代码来自动填充网页?正如我所说,这取决于网站。因此,如果不知道该站点以及它是否已经使用jquery,我就无法真正回答这个问题。另外,您可能不想使用我编写的任何javascript。我对这门语言完全是个新手。}:)希望有人能在这里提出建议,如果你编辑问题,让它更清楚,你需要JS的建议。