基于Gecko内核的简单浏览器实现
分享一个基于Gecko内核的简单浏览器实现过程。
项目需要需要开发一个简单浏览器,由于被访问的网页中有大量Apng做的动画,使用IE内核的webbrowser不能播放,使用基于WebKit和Cefsharp试了一下,播放Apng动画也有问题。(CefSharp最新版本已经解决动画问题,但有时候比例会有一点点问题)
顺便分享一下各个项目地址:
CefSharp:https://github.com/cefsharp/CefSharp
WebKit.Net: https://github.com/webkitdotnet/webkitdotnet
Geckofx45:https://www.nuget.org/packages/Geckofx45/45.0.34
开发步骤如下:
1、新建WinFrom项目
项目Framework版本必须是4.5,目标平台要选32位X86
2、添加Nuget引用
Install-Package Geckofx45 -Version 45.0.
正常引用下项目会添加如下的引用,并自动添加Firefox内核文件夹
3、初始化
public Form1()
{
InitializeComponent();
Xpcom.Initialize(Application.StartupPath + "/Firefox");
}
4、创建浏览器对象实现网页浏览
GeckoWebBrowser geckoWebBrowser = new GeckoWebBrowser();
geckoWebBrowser.Navigate("http://www.baidu.com/");
geckoWebBrowser.Dock = DockStyle.Fill;
this.Controls.Add(geckoWebBrowser);
PS:
实现网页缩放比例:
var cv = Xpcom.QueryInterface<nsIDocShell>(geckoWebBrowser.WebBrowserFocus).GetContentViewerAttribute();
cv.SetFullZoomAttribute(0.8);
各种问题都可以看一下:
https://bitbucket.org/geckofx/geckofx-45.0/issues
基于Gecko内核的简单浏览器实现的更多相关文章
- Winform调用WebKitBrowser,基于chrome内核WebKit的浏览器控件
在C#中,默认的WebBrowser控件默认使用的是IE的core,而IE的种种遭人吐槽的诟病使我不敢轻易使用WebBrowser,因此,打算使用Chrome的内核替换IE.Chrome的内核使用的是 ...
- python selenium中如何测试360等基于chrome内核的浏览器
转自:https://blog.csdn.net/five3/article/details/50013159 直接上代码,注意是基于chrome内核的浏览器,基于ie的请替换其中的chrome方法为 ...
- 基于.net开发chrome核心浏览器【三】
原文:基于.net开发chrome核心浏览器[三] 本篇我们讲解怎么用CefGlue开发一个最简单的浏览器 一: CefGlue是建立在Cef项目之上的,Cef项目是C/C++的项目:CefGlue只 ...
- 【ShoppingWebCrawler】-基于Webkit内核的爬虫蜘蛛引擎概述
写在开头 在各个电商平台发展日渐成熟的今天.很多时候,我们需要一些平台上的基础数据.比如:商品分类,分类下的商品详细,甚至业务订单数据.电商平台大多数提供了相应的业务接口.允许ISV接入,用来扩展自身 ...
- 基于.net开发chrome核心浏览器【七】
这是一个系列的文章,前面六篇文章的地址如下: 基于.net开发chrome核心浏览器[六] 基于.net开发chrome核心浏览器[五] 基于.net开发chrome核心浏览器[四] 基于.net开发 ...
- 基于.net开发chrome核心浏览器
本文转载自:http://www.cnblogs.com/liulun/archive/2013/04/20/3031502.html 一: 上一篇的链接: 基于.net开发chrome核心浏览器[一 ...
- 基于.net开发chrome核心浏览器【四】
原文:基于.net开发chrome核心浏览器[四] 一: 上周去北京出差,给国家电网的项目做架构方案,每天都很晚睡,客户那边的副总也这样拼命工作. 累的不行了,直接导致第四篇文章没有按时发出来. 希望 ...
- 基于.net开发chrome核心浏览器【二】
原文:基于.net开发chrome核心浏览器[二] 一: 上一篇的链接: 基于.net开发chrome核心浏览器[一] 二: 相关资源介绍: chrome Frame: 让IE有一颗chrome的心, ...
- 基于django的自定义简单session功能
基于django的自定义简单session功能 简单思路: 1.建立自定义session数据库 2.登入时将用户名和密码存入session库 3.将自定义的随机session_id写入cookie中 ...
随机推荐
- webapi返回json字符串
第一种 直接在方法中返回json. public class DefaultController : ApiController { [HttpGet] public IHttpActionResul ...
- coursea机器学习课程作业
coursea机器学习课程作业 一 关于此课程 课程地址 图片来自网络 1.官网课程地址传送 2.如果访问官网速度较慢可以上 B站课程地址 机器学习是一门研究在非特定编程条件下让计算机采取行动的学科. ...
- element-ui笔记
1.el-dialog的关闭异常 在confirm按钮事件中,我们需要对业务参数进行校验,但是校验未通过,return false了,仍然关闭了弹窗. 原因:cancel按钮的click直接将弹窗的s ...
- P4015 运输问题 网络流问题
题目描述 WW 公司有 mm 个仓库和 nn 个零售商店.第 ii 个仓库有 a_iai 个单位的货物:第 jj 个零售商店需要 b_jbj 个单位的货物. 货物供需平衡,即\sum\limits ...
- jcrop2.X 取消选框
(原) 官网 0.9.12 API 2.X API 在2.X以下在版本中,api提供了release()方法用于取消选框.但在2.X以上的版本中已经没有这个方法了.于是各种查找,终于解决了如何取消选框 ...
- Python多线程操作
多线程是一门编程语言的重要操作. GIL(全局解释器锁)存在于python解释器中,用来确保当前只有一个线程被执行,当一个线程获得GIL后,这个线程将被执行,退出时释放GIL,由下一个获得GIL的线程 ...
- Elasticsearch 通关教程(七): Elasticsearch 的性能优化
硬件选择 Elasticsearch(后文简称 ES)的基础是 Lucene,所有的索引和文档数据是存储在本地的磁盘中,具体的路径可在 ES 的配置文件../config/elasticsearch. ...
- dump文件解析之探索.Net的内存
前言: 对于需要长时间运行的.net程序,有时需要我们查看内存的使用有没有内存泄露问题. 我们可以从dump文件中找到答案. Dump的看点 用dump文件来分析内存,到底我们需要关心哪些点呢? 内存 ...
- Eclipse 从git导入maven多模块项目
原文地址:https://blog.csdn.net/xiongyouqiang/article/details/78903975 以https://github.com/xiongyouqiang/ ...
- Python中的函数定义方法
def test(x): "hjkasgd" x += 1 return x def——定义函数的关键字 test——函数名 ()——内可定义形参 ""——文档 ...