iOS stringByEvaluatingJavaScriptFromString问题
下面是设置UIWebView的代码:iOS stringByEvaluatingJavaScriptFromString问题,ios,uiwebview,stringbyevaluatingjavascr,Ios,Uiwebview,Stringbyevaluatingjavascr,下面是设置UIWebView的代码: - (void)webViewDidFinishLoad:(UIWebView *)webView { [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.getElementById(\"image\").src=\"q%@.png\";", self.imageIndex]]; NSLog(@"%f", [[webV
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.getElementById(\"image\").src=\"q%@.png\";", self.imageIndex]];
NSLog(@"%f", [[webView stringByEvaluatingJavaScriptFromString:@"document.getElementById(\"image\").height;"] floatValue]);
CGFloat width = [[webView stringByEvaluatingJavaScriptFromString:@"document.width"] floatValue];
CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@"document.height"] floatValue];
CGSize contentSize = CGSizeMake(width, height);
[self setUpNewSize:contentSize];
}
我为id为的对象设置了新的图像(它可以正常工作)。但是大小没有改变。正如您所看到的,我使用NSLog打印高度值,但高度显示为0.0000
这是我的HTML文件:
<!DOCTYPE html>
<html>
<head>
<title>Question 1</title>
</head>
<body>
<h3 id="header">Question 1</h3>
<img id="image" src="" alt="" width="100%">
</body>
</html>
问题1
问题1
我有不同的高度为每个图像和它的变化动态。所以我的问题是,当我调用stringByEvaluatingJavaScriptFromString时,为什么document和img的高度没有改变。也许我需要创建一些重载方法吗?设置src属性后,您将立即访问高度和宽度。您应该先等待图像加载 您可以通过检查以下委托调用中的请求url来检测图像是否正在加载
-(BOOL)webView:(UIWebView*)webView应该加载请求:(NSURLRequest*)请求导航类型:(UIWebView导航类型)导航类型
一旦知道图像开始加载,就可以在随后的调用中获取其高度和宽度
- (void)webViewDidFinishLoad:(UIWebView *)webView
设置src属性后,您将立即访问高度和宽度。您应该先等待图像加载 您可以通过检查以下委托调用中的请求url来检测图像是否正在加载
-(BOOL)webView:(UIWebView*)webView应该加载请求:(NSURLRequest*)请求导航类型:(UIWebView导航类型)导航类型
一旦知道图像开始加载,就可以在随后的调用中获取其高度和宽度
- (void)webViewDidFinishLoad:(UIWebView *)webView
谢谢你的回复,但我不确定我是否正确理解了你。我已经添加了您的方法,并在那里输入了我的图像代码。但加载后我没有看到任何变化。我已经设置了断点,首先调用shouldStartLoadWithRequest,然后webViewDidFinishLoad,但是内容没有像我想的那样加载,这意味着我无法处理DOM对象,因为它们还不可用。感谢您的响应,但我不确定我是否正确理解了您。我已经添加了您的方法,并在那里输入了我的图像代码。但加载后我没有看到任何变化。我首先设置了断点shouldStartLoadWithRequest,然后设置了webViewDidFinishLoad,但内容并没有像我想的那样加载,这意味着我无法处理DOM对象,因为它们还不可用。