我在 View Controller 中有以下代码。 “pageDisplay”是一个 UIWebView。
当我在模拟器中运行该应用程序时,HTML 页面出现在 JS 运行之前。 id 为“myHeader”的元素,一个 <h1>
标签,不变。
-(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\";"];
}
最佳答案
你太早调用了 doJavaScript
。您需要等到页面加载完毕。调查 Web View 委托(delegate)方法 - (void)webViewDidFinishLoad:(UIWebView *)webView
。
关于javascript - UIWebView stringByEvaluatingJavaScriptFromString 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3753286/