zoukankan      html  css  js  c++  java
  • .net 内嵌 GeckoWebBrowser (firefox) 核心浏览器

    引用nuget包:

    注意:Geckofx45 nuget包必须是最后引用,否则初始化会出错

    简单示例:

    using Gecko;
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace WindowsFormsApp2
    {
        public partial class Form1 : Form
        {
            GeckoWebBrowser gecko;
            public Form1()
            {
                InitializeComponent();
    
                Xpcom.Initialize("Firefox");
    
                gecko = new GeckoWebBrowser();
                gecko.CreateControl();
    
                gecko.NoDefaultContextMenu = true; //禁用右键菜单
    
                gecko.Dock = DockStyle.Fill;
                panel1.Controls.Add(gecko);
                gecko.ProgressChanged += Gecko_ProgressChanged;
                gecko.CreateWindow += Gecko_CreateWindow;
                gecko.DocumentCompleted += Gecko_DocumentCompleted;
                gecko.Navigate("http://www.baidu.com");
    
    
            }
    
            private void Gecko_DocumentCompleted(object sender, Gecko.Events.GeckoDocumentCompletedEventArgs e)
            {
                //var executor = new Gecko.JQuery.JQueryExecutor(gecko.Window);  //先获取到jquery对象
    
    
                //executor.ExecuteJQuery("$('#a')");    //然后执行jquery的代码
                using (AutoJSContext context = new AutoJSContext(gecko.Window))
                {
                    string result;
                    context.EvaluateScript("3 + 2;", out result);
                    context.EvaluateScript("'hello' + ' ' + 'world';", out result);
                }
    
    
                progressBar1.Value = 0;
            }
    
            private void Gecko_CreateWindow(object sender, GeckoCreateWindowEventArgs e)
            {
                e.InitialHeight = 500;
                e.InitialWidth = 500;
            }
    
            private void Gecko_ProgressChanged(object sender, GeckoProgressEventArgs e)
            {
                if (e.MaximumProgress == 0 )
                    return;
    
                var value = (int)Math.Min(100, (e.CurrentProgress * 100) / e.MaximumProgress);
                if (value == 100)
                    return;
                progressBar1.Value = value;
            }
        }
    }
  • 相关阅读:
    idea 配置 maven 项目
    idea 配置普通web项目
    idea java.lang.OutOfMemoryError: PermGen space
    idea checkout 项目
    物理机自动化装机实现
    prometheus node_exporter相关监控指标
    nginx Linux内核参数的优化
    《高性能 Go 代码工坊》中译
    docker仓库资源的地址修改
    influxdb-1.7.8(centos 7) 部署
  • 原文地址:https://www.cnblogs.com/IWings/p/7527304.html
Copyright © 2011-2022 走看看