检查页面在重新加载后是否完全加载

时间:2019-02-28 02:56:21

标签: c# cefsharp

我正在尝试使用计时器,请在运行 browser.Reload(); 方法

后检查页面是否已完成重新加载

我无法使用LoadingStateChange,因为我需要完全加载页面并在加载后仅运行脚本一次

我的代码:

public void initTimer()
    {
        RunScriptAsync(); // this method is executing every one second
    }

    public bool reloadpage = false; // make the page reload some one time

    private async void RunScriptAsync()
    {
        if (!reloadpage)
        {
            reloadpage = true;
            browser.Reload();
        }

        var taskcheckdocument = browser.GetMainFrame().EvaluateScriptAsync("(function(){return (document.readyState === 'ready' || document.readyState === 'complete')})();", null);
        taskcheckdocument.ContinueWith(check =>
        {
            if (check.Result != null && check.Result.Result != null && check.Result.Result.ToString().Equals("True"))
            {
                //execute async script
            }
        }, TaskScheduler.FromCurrentSynchronizationContext);
        }

但是此代码存在问题,taskcheck文档不会等待浏览器.Reload()方法终止,并且已经执行,因此无需重新加载页面即可执行。

如何使browser.Reload()方法完成运行以执行其下面的代码?

0 个答案:

没有答案