webViewDidFinishLoad在网页中有javascript内容时不会调用

我在一个项目中使用UIWebView 。 有时它不调用webViewDidFinishLoad方法。 因为网页有一些JavaScript的。 方法

 - (BOOL) webView: (UIWebView *) webView shouldStartLoadWithRequest: (NSURLRequest *) request navigationType: (UIWebViewNavigationType) navigationType 

正在调用,但webViewDidFinishLoad不。 我想抓住这个方法。 因为我在webview开始加载时开始animation。 然后我想在完成时停止这个animation。 这不是与具有JavaScript内容的网站。 任何人有一个想法吗?

谢谢

webViewDidFinishLoad方法在UIWebView完成加载url时被调用,在你的情况下,因为你正在调用一个javascript ,它不会加载你的内容,它只是在你已经加载的webview调用一个javascript函数。 但是,您可以使用与您在下面所述的相同的方法来捕获JavaScript操作

 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ NSString *url = [[request URL] absoluteString]; if(navigationType == UIWebViewNavigationTypeLinkClicked){ if([url rangeOfString:@"SOMETHING"].length > 0 ){ //if your action returns something appended in your url like the anchors work //DO YOUR STUFFS } } return TRUE; } 

显然,ios中的webview专门检查html dom中的“iframe”标签,如果发现它,它也会根据该标签创build事件。 因此,一个简单的解决方法是在正在改变的dom部分中添加以下代码(例如,在每个部分的实际模板中):

 <iframe></iframe> 

为我做了诡计