1

我的应用程序有以下代码。

- (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 中看到任何错误,请告诉我,

4

2 回答 2

1

首先,更改要引用的用户和密码格式值:

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。

于 2012-06-18T05:26:34.173 回答
0

您缺少字符串引号。

试试这个:

NSString* javaScriptString = @"document.getElementById('Login1_UserName').value='%@';"
"document.getElementById('Login1_Password').value='%@';"
"document.forms['form1'].submit();";
于 2012-06-18T05:28:38.210 回答