2013-03-01 104 views
1
[self.webview stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"myfunc('%@')",string]]; 

这上面的代码工作得很好,绝对没有问题,但只有当我的JavaScript方法存在于我正在加载的页面。但是,如果JS方法在任何外部JS简称文件,它没有被触发,这就是我如何加载我的网页从UIWebView调用javascript方法

 [self.webview loadRequest:[[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://example/mypage.html"]]]; 

在此先感谢

+1

你保证你的外部js文件被解析?该方法在调用时必须为WebView所知。 – Matthias 2013-03-01 08:12:35

+0

该方法在js文件中全局定义,并且该js文件在html文件中被称为 2013-03-01 09:44:35

回答

1

为了确保你的JavaScript函数将被调用只有页面完全加载,您必须在webViewDidFinishLoad:执行内调用它。

因此,举例来说:

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"myfunc('%@')",string]]; 
    // Do any additional stuff 
}