gpt4 book ai didi

iOS stringByEvaluatingJavaScriptFromString 问题

转载 作者:行者123 更新时间:2023-11-29 13:16:14 25 4
gpt4 key购买 nike

我在下面设置了我的 UIWebView 的代码:

- (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>

我为每个图像设置了不同的高度,并且它会动态变化。所以我的问题是为什么当我调用 stringByEvaluatingJavaScriptFromString 时 document 和 img 的高度没有改变。也许我需要创建一些重新加载方法?

最佳答案

您在设置 src 属性后立即访问高度和宽度。您应该先等待图像加载。

您可以通过检查以下委托(delegate)调用中的请求 url 来检测图像是否正在加载。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

一旦你知道图像开始加载,你就可以在随后的调用中获取它的高度和宽度

- (void)webViewDidFinishLoad:(UIWebView *)webView

关于iOS stringByEvaluatingJavaScriptFromString 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15753247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com