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

时间:2013-04-29 08:16:54

标签: javascript iphone ios uiwebview uiwebviewdelegate

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

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

正在接听电话,但webViewDidFinishLoad没有。我想抓住那个方法。因为我在webview开始加载时启动动画。然后我想在完成后停止这个动画。它不适用于具有javascript内容的网站。有人有想法吗?

由于

2 个答案:

答案 0 :(得分:0)

webViewDidFinishLoad完成加载网址时会调用

UIWebView方法,因为您调用的是javascript,因此它不会加载您的内容,只会调用您已加载的javascript中的webview功能。但YES您可以按照下面所述的相同方法捕获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;


}

答案 1 :(得分:0)

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

<iframe></iframe>

为我做了诀窍......