如何检查网页是否已完全呈现?

时间:2014-12-18 10:42:47

标签: webview render document

我正在制作iOS应用程序,我的应用程序的一个页面有一个webview,后面有多个视图。在此页面中,webview应自动扩展,高度应与动态注入的内容相匹配,因为我不希望webview具有滚动。现在,我有一个问题,我无法将doucment.body的确切高度发布到客户端以设置webview的高度,因为我无法确认整个内容何时被渲染到文档中。

我试图检查document.body的高度变化,直到高度没变,我发布'0'。客户端通过invokeNative('changeHeight', params)获取信号,当它为0时,客户端获取document.body高度,但在我的测试中,这不是文档的确切高度。只是内容节目的一部分。

    function reportHeight() {
        var preH = document.body.offsetHeight;
        var params = {
            "heigh": preH
        };
        invokeNative('changeHeight', params); //the method i communicate with client

        var timeId = setInterval(function() {
            var height = document.body.offsetHeight;
            if((height - preH) == 0) {
                invokeNative('changeHeight', {"heigh": 0});
                clearInterval(timeId);

                setTimeout(function() {
                    invokeNative('changeHeight', {"heigh": 10});
                }, 500)

                return false;
            }
            var params = {
                "heigh": (height - preH)
            };
            preH = height;
            invokeNative('changeHeight', params);
        }, 30);
    }

有什么方法可以解决这个问题吗?

顺便说一句,注入页面的内容只有css和html标签,而且没有js。

0 个答案:

没有答案