我的应用程序有以下代码。
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
//Set the values
NSString* firstValue = @"guest";
NSString* secondValue = @"guest";
// write javascript code in a string
NSString* javaScriptString = @"document.getElementById('Login1_UserName').value=%@;"
"document.getElementById('Login1_Password').value=%@;"
"document.forms['form1'].submit();";
// insert string values into javascript
javaScriptString = [NSString stringWithFormat: javaScriptString, firstValue, secondValue];
// run javascript in webview:
[webView stringByEvaluatingJavaScriptFromString: javaScriptString];
}
- (void)launchWebPageWithOptions
{
NSString *urlString = @"http://demo.leadtools.com/MedicalViewer/default.aspx";
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *requestObject = [NSURLRequest requestWithURL:url];
[iOSWebView loadRequest:requestObject];
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self launchWebPageWithOptions];
}
由于某些原因,我无法使用 javascript 调用执行自动登录。我不是 JS 专家,所以如果您在我的 javaScriptString 中看到任何错误,请告诉我,
最佳答案
首先,更改要引用的用户名和密码格式值:
NSString* javaScriptString = @"document.getElementById('Login1_UserName').value='%@';"
"document.getElementById('Login1_Password').value='%@';"
"document.forms['form1'].submit();";
请注意,在这两种情况下,我都将 value=%@
更改为 value='%@'
。这将正确填写输入框。
接下来,在登录按钮上调用 click()
函数,而不是在表单上调用 submit()
:
NSString* javaScriptString = @"document.getElementById('Login1_UserName').value='%@';"
"document.getElementById('Login1_Password').value='%@';"
"document.getElementById('Login1_LoginButton').click()";
这将允许执行为登录按钮指定的 onclick
javascript。
关于javascript - iOS 获取过去的登录表单。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11076682/