簡體   English   中英

iOS stringByEvaluatingJavaScriptFromString問題

[英]iOS stringByEvaluatingJavaScriptFromString issue

我在下面的代碼中設置了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時文檔和img的高度不會改變。 也許我需要創建一些重載方法?

設置src屬性后,您將立即訪問高度和寬度。 您應該等待圖像首先加載。

您可以通過在以下委托調用中檢查請求URL來檢測是否正在加載圖像。

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

知道圖像開始加載后,您可以在隨后的調用中獲取其高度和寬度

- (void)webViewDidFinishLoad:(UIWebView *)webView

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM