1

我有一个UIWebView,HTML初始化后从缓存加载 -file :

UIWebView *tempWebView = [[UIWebView alloc] init];
tempWebView.delegate = self;
[self.view addSubview:tempWebView];

[tempWebView loadHTMLString:htmlString baseURL:baseURLString];

webViewDidFinishLoad:(UIWebView *)webView我试图执行的javascript

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    [[webView stringByEvaluatingJavaScriptFromString:jsString] floatValue];
    // other manipulations...

    [webView removeFromSuperview];
}

问题是HTML-code 具有外部依赖项,例如:

<link rel="stylesheet" href="css/book.css" type="text/css"/>

而且有这样的印象,就是这个*.css来不及加载,所以javascript-code返回了错误的值。如果执行webViewDidFinishLoad:(UIWebView *)webView延迟的内容(假设 2.0f 秒),一切都会好起来的。

但是这种延迟在不同的设备和情况下可能会有所不同。那么如何确定所有依赖项都已加载以执行我的javascript代码?

4

1 回答 1

0

使用此代码

webViewDidStartLoad

- (void)webViewDidStartLoad:(UIWebView *)webView 
{
[[webView stringByEvaluatingJavaScriptFromString:jsString] floatValue];
// other manipulations...
}
于 2012-07-19T11:31:45.750 回答