2011-06-15 42 views
1

我已经加载页面后尝试此方法。但有时webView的mainFrameDocument是空的(无)。它根本不依赖于URL! [webView mainFrameURL]并非始终为零。WebKit => [webView mainFrameDocument] ==零(有时)

en.wikipedia.org =>没有问题

heise.de => 80%时间(不是页面!)mainFrameDocument ==零 ...

- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame { 

    if (frame == [self mainFrame]) { 

     if ([self mainFrameDocument] == nil) NSLog(@"mainFrameDocument with URL = %@ is nil!", [self mainFrameURL]); 
    } 
} 

2011-06- 16 00:31:28.763 WebAppforMac [32025:707] URL = http://www.heise.de/的mainFrameDocument为零!

回答

1

这听起来像是一种竞争条件。

http://en.wikipedia.org/http://heise.de/都发回301重定向,但他们做的稍微不同。维基百科的回应有一个空的正文,而heise.de用301发送一个简短的HTML文档。这只是一个猜测,但可能发生的事情是WebView加载第一个文档,然后调用监听器方法,然后另一个线程)尝试加载被重定向到的页面。所以如果重定向不够快,你有时会得到一个空主框架。

0

谢谢!!!

所以我就一点:我必须使用:

- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame { 

    if (frame == [self mainFrame]) { 

     if ([**frame document**] == nil) NSLog(@"mainFrameDocument with URL = %@ is nil!", [self mainFrameURL]); 
    } 
} 
相关问题