首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS10 WKWebview - evaluateJavaScript("document.height")返回nil

问iOS10 WKWebview - evaluateJavaScript("document.height")返回nil
EN

Stack Overflow用户
提问于 2016-09-18 10:47:13
回答 2查看 7.1K关注 0票数 4

在我的应用程序中,我需要获取WKWebView中网页的高度。所以我使用下面的代码。

代码语言:javascript
复制
webView.evaluateJavaScript(("document.height"), completionHandler: { contentHeight,error in
    print(contentHeight)
})

在iOS 9之前,它会正确地返回网页高度。但在iOS 10中,contentHeight始终为nil。

我设置好了

代码语言:javascript
复制
webView.scrollView.scrollEnabled = false

web视图在UITableViewCell中。

webView和UITableViewCell的高度是可变的。在web视图上有一个顶部和底部约束,以适应单元格。

当我得到网页高度时,我希望它反映在单元格的高度上。

EN

回答 2

Stack Overflow用户

发布于 2016-09-18 12:53:36

试试这个:

代码语言:javascript
复制
let javascriptString = "" +
            "var body = document.body;" +
            "var html = document.documentElement;" +
            "Math.max(" +
            "   body.scrollHeight," +
            "   body.offsetHeight," +
            "   html.clientHeight," +
            "   html.offsetHeight" +
        ");"

    webView.evaluateJavaScript(javascriptString) { (result, error) in
        if error == nil {
            if let result = result, let height = JSON(result).int {
                self.htmlContentHeight = CGFloat(height)
                self.resetContentCell()
            }
        }
    }

PS。WKWebiew渲染问题:WKWebView not rendering correctly in iOS 10

票数 8
EN

Stack Overflow用户

发布于 2016-10-25 09:26:04

您可以尝试使用

代码语言:javascript
复制
webView.evaluateJavaScript(("document.body.offsetHeight"), completionHandler:^(id _Nullable result, NSError * _Nullable error) {
    NSLog(@">>>%@",result);
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39553560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档