.net 内嵌 GeckoWebBrowser (firefox) 核心浏览器

引用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;
        }
    }
}
时间: 2024-10-29 03:15:26

.net 内嵌 GeckoWebBrowser (firefox) 核心浏览器的相关文章

Eclipse内嵌的webservice客户端

概述 Eclipse内嵌的webservice客户端,可用于发起请求,查看结果,展示请求和响应的报文. 详情 在Java EE视图,可以看到内嵌的webservice客户端浏览器登陆按钮 点击打开浏览器,按照图示依次点击,输入wsdl的url,点击go 在下图中点击add链接,会打开测试窗口 在下图中,输入参数,点击go,可以在Status窗口看到请求结果 为方便查看,双击Status标题栏,可以最大化/还原Status窗口:点击Source链接,可以查看请求/响应的报文 报文是xml格式的so

IE内嵌google chrome frame解决浏览器兼容问题

IE内嵌google chrome frame解决浏览器兼容问题 http://www.cnblogs.com/xwdreamer/archive/2013/12/17/3477776.html 参考文献: http://www.pseudowired.com/2012/12/04/tomcat-http-header-manipulation/(html中自动添加使用chrome的header) http://www.baike.com/wiki/Google+Chrome+Frame(goo

cocos2d-x调用android内嵌浏览器打开网页

cocos2d-x调用android内嵌浏览器打开网页,可以从入口传入网址,C++调用android 的api即可实现.方法也很简单 1. 修改"cocos2dx\platform\win32"下的CCApplication.h和CCApplication.cpp,添加函数 头文件声明 void openURL(const char* pszUrl); cpp文件实现: void CCApplication::openURL(const char* pszUrl) { ShellExe

android之在view中内嵌浏览器的方法

我要做的一个东西是在一个页面的中间嵌入浏览器,一开始不知道从哪里开始,因为以前用的都是Textveiw或者editVeiw之类的控件,而它们并不能用来显示网页的内容,怎么办呢? 首先想到的是:是不是有一个用来显示网页的View呢,于是我就在eclipse里xml编辑器里输入<web,哈哈,果然下面有个提示是webVeiw,那么能不能用它呢?于是到网上搜一下它的资料,果然可以的,下面就开始吧. 先在xml里把webview建好,在代码里用findViewById()将其取出来.我的代码是: Web

Jcef内嵌浏览器windows版本的编译及使用

背景 去年年底接到的新需求,需要将原来用Swing做的桌面应用中的一个功能做成Web版的,并且要集成到原应用中,换言之就是要使用内嵌浏览器.最开始考虑的是JavaFx提供的WebView,优点是不需要其他第三方库,jdk1.7开始集成.但是开发完成之后发现两个比较严重的问题,一是界面有一个比较复杂的曲线图会严重卡顿,另一个是有几率会导致虚拟机崩溃,并且速度上也不是很让人满意.最后只能考虑换一个内嵌浏览器框架,然后就找到jcef,基于chrome,速度兼容性都很好. 关于jcef就不多作介绍,不了

Chrome浏览器内嵌的各种手机模拟器

打开chrome的控制台标签,然后,点击simulator子标签页,选择需要的手机即可,如下图: 模拟器如下: 阅读原文:Chrome浏览器内嵌的各种手机模拟器

微信内嵌浏览器如何直接打开外部浏览器下载APP(APK)

想必大家会经常碰到网页链接在微信内无法打开和微信内无法打开app下载页的情况.通常这种情况微信会给个提示 “已停止访问该网址” ,那么导致这个情况的因素有哪些呢,主要有以下四点 1.网页链接被举报次数过多.2.网页含违规内容,含敏感词.3.被腾讯检测系统判断为诱导分享内容.4.转发分享次数达上限 那么上述问题怎么办呢?只要我们实现微信跳转浏览器的功能即可. 功能目的 生成微信跳转链接,实现微信内置浏览器跳转外部浏览器打开网页. 功能效果 对网页所属的PHP代码进行相关处理,加入跳转接口即可实现.

WinForm中内嵌WebBroswer

本文系原创. 前两天在工作中需要在Winform的窗体中内嵌的一个浏览器,我们都知道winform其实是自带了WebBroswer控件的,但是这个控件是IE的浏览器,存在这样那样的兼容性问题,不能完全满足的需求,所以就研究了下其他的开源浏览器框架,内嵌到我们的窗体中,完成了产品需求,以下做一个记录和分享. 由于产品是要做商用的,所以必须得考虑开源性和开源协议的问题.研究了Geckofx.CefSharp这两个组件,其中Geckofx的开源许可证为MPL,CefSharp开源许可证为BSD. Ce

Firefox火狐浏览器的高效使用

Firefox火狐浏览器的高效使用 在统一的地址栏搜索一切 页面操作菜单:书签.截图.保存或分享 同步 账户 跨平台的使用 附加组件 我用的组件 如何下载与安装 如何看使用说明书 油猴脚本的详细 tampermonkey 脚本的下载 我用的脚本 如何选用脚本 插件与脚本如何选择 如何判断脚本质量:使用人数与评价星级 扩展:拥抱开发者社区 如何看懂脚本文件 贡献自己的脚本 如何用自己的脚本赚钱 学习与探寻高效软件的秘诀 特别鸣谢:王顶老师 Firefox火狐浏览器的高效使用 注意:总体功能同样适用