2010-09-20 65 views
4

我在视图控制器中有以下代码。 “pageDisplay”是一个UIWebView。 当我在模拟器中运行应用程序时,HTML页面出现在JS运行之前。 ID为“myHeader”的元素<h1>标记未更改。UIWebView stringByEvaluatingJavaScriptFromString woes

-(void) loadPageToView:(int)pageNumber{ 
    NSString *path = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%d",pageNumber]ofType:@"html"]; 
    NSURL *url = [NSURL fileURLWithPath:path]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
    [pageDisplay loadRequest:request]; 
    [self doJavaScript]; 
} 

-(void) doJavaScript{ 
    [pageDisplay stringByEvaluatingJavaScriptFromString:@"document.getElementById('myHeader').innerHTML = \"FOO\";"]; 
}              

回答

6

你打电话doJavaScript为时尚早。您需要等到页面加载完成。调查网络查看代理方法- (void)webViewDidFinishLoad:(UIWebView *)webView

+0

Hooray!谢谢。 – Chris 2010-09-20 21:50:39