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>
为我做了诡计