0

我想做一些简单的事情,比如加载网页。出于某种原因,Awesomium 没有更新 IsLoading 等属性,也没有触发 DocumentReady 或 LoadingFrameComplete 等事件,我不知道为什么,谁能帮帮我?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Awesomium.Core;

namespace DownloaderTest
{
    class ParsingHelper
    {
        WebView wv;

        public ParsingHelper(WebView web)
        {
            this.wv = web;
        }

        public void ParsingInitiation(string link)
        {
            wv.LoadingFrameComplete +=wv_LoadingFrameComplete;

            wv.Source = new Uri(link);
        }

        void wv_LoadingFrameComplete(object sender, FrameEventArgs e)
        {
            if(e.IsMainFrame)
            {
                //BeginParsing
                ((WebView)sender).LoadingFrameComplete -= wv_LoadingFrameComplete;
            }

        }
    }

    class Teste
    {
        WebView MainWeb = WebCore.CreateWebView(1024,768);

        public object[] ObtainInformation(int id)
        {
            ParsingHelper ph = new ParsingHelper(MainWeb);

            ph.ParsingInitiation("http://www.google.com");

            //More code

            return new object[] {};
        }


    }
}

如果我运行类似...

Teste t = new Teste();
t.ObtainInformation(1);

wv_LoadingFrameComplete永远不会触发,我不知道为什么。

4

2 回答 2

1

试试这个代码来检测页面加载完全 loadingFrameCompete 事件 + IsLoading 属性

private void Awesomium_Windows_Forms_WebControl_LoadingFrameComplete(object sender, Awesomium.Core.FrameEventArgs e)
        {
            if (!webControl1.IsLoading)
                MessageBox.Show("Page Loaded Completely");
        }
于 2014-04-15T21:13:42.183 回答
0

在这里回答:http: //answers.awesomium.com/questions/2260/awesomium-not-loading-page-or-triggering-any-event.html

您要么在非 UI 环境(不是 WPF/WinForms 控件)中使用 Awesomium,并且必须隐式调用 WebCore.Update() ,要么您只是阻塞同一个线程,因此它不能触发事件。

于 2013-08-17T22:39:25.473 回答