2011-10-12 27 views
0

在UIWebViewController中的我的webViewDidFinishLoad方法中,我一直试图分开javascript调用,以便它们只能在特定的URL上执行。到目前为止,我一直在尝试一个简单的if语句,它使用当前的URL并尝试匹配这两个字符串。然而,这不允许if语句在url匹配的情况下运行。任何帮助,将不胜感激。如何仅在UIWebView中的某些URL上执行JavaScript

NSString *currentURL = homePage.request.URL.absoluteString; 

if (currentURL == @"www.google.com"){ 
    NSLog(@"hi"); 
[webView stringByEvaluatingJavaScriptFromString:injectedEmail]; 
[webView stringByEvaluatingJavaScriptFromString:injectedPassword]; 

[homePage stringByEvaluatingJavaScriptFromString:@"var field = document.getElementById('loginSubmit');" 
"document.forms[0].submit();"]; 
} 

回答

1

你应该看看NSURL Class Reference,它会告诉你,-(NSString *)absoluteString返回RFC 1808绝对URL。这些动物看起来像http://www.google.com/search?q=NSURL,并没有一个主机名。

而且,当你在比较的Objective-C字符串,使用==字符串指针,而不是比较。你应该使用类似:

if ([currentURL isEqualToString:@"http://www.google.com"]) { 
    // do stuff 
} 

但你可能不关心完整absoluteURL,在这种情况下,我建议:

if ([currentURL hasPrefix:@"http://www.google.com"]) { 
    // do stuff 
} 
+0

这帮助,非常感谢。 – user989941

相关问题