diff --git a/NJKWebViewProgress/NJKWebViewProgress.m b/NJKWebViewProgress/NJKWebViewProgress.m index 4b9baa6..7937d31 100644 --- a/NJKWebViewProgress/NJKWebViewProgress.m +++ b/NJKWebViewProgress/NJKWebViewProgress.m @@ -92,8 +92,7 @@ - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *) BOOL isFragmentJump = NO; if (request.URL.fragment) { - NSString *nonFragmentURL = [request.URL.absoluteString stringByReplacingOccurrencesOfString:[@"#" stringByAppendingString:request.URL.fragment] withString:@""]; - isFragmentJump = [nonFragmentURL isEqualToString:webView.request.URL.absoluteString]; + isFragmentJump = [[self nonFragmentURL:request.URL] isEqual:[self nonFragmentURL:webView.request.URL]]; } BOOL isTopLevelNavigation = [request.mainDocumentURL isEqual:request.URL]; @@ -136,7 +135,7 @@ - (void)webViewDidFinishLoad:(UIWebView *)webView [webView stringByEvaluatingJavaScriptFromString:waitForCompleteJS]; } - BOOL isNotRedirect = _currentURL && [_currentURL isEqual:webView.request.mainDocumentURL]; + BOOL isNotRedirect = [[self nonFragmentURL:_currentURL] isEqual:[self nonFragmentURL: webView.request.mainDocumentURL]]; BOOL complete = [readyState isEqualToString:@"complete"]; if (complete && isNotRedirect) { [self completeProgress]; @@ -161,13 +160,22 @@ - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error [webView stringByEvaluatingJavaScriptFromString:waitForCompleteJS]; } - BOOL isNotRedirect = _currentURL && [_currentURL isEqual:webView.request.mainDocumentURL]; + BOOL isNotRedirect = [[self nonFragmentURL:_currentURL] isEqual:[self nonFragmentURL: webView.request.mainDocumentURL]]; BOOL complete = [readyState isEqualToString:@"complete"]; if ((complete && isNotRedirect) || error) { [self completeProgress]; } } +- (NSURL *)nonFragmentURL:(NSURL *)sourceUrl{ + NSURL *nonFragmentUrl = sourceUrl; + if(sourceUrl && sourceUrl.fragment){ + NSString *nonFragmentUrlStr = [sourceUrl.absoluteString stringByReplacingOccurrencesOfString:[@"#" stringByAppendingString:sourceUrl.fragment] withString:@""]; + nonFragmentUrl = [NSURL URLWithString:nonFragmentUrlStr]; + } + return nonFragmentUrl; +} + #pragma mark - #pragma mark Method Forwarding // for future UIWebViewDelegate impl