引用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; } } }
本文摘自 :https://www.cnblogs.com/