专题四:自定义Web浏览器

前言:

  前一个专题介绍了自定义的Web服务器,然而向Web服务器发出请求的正是本专题要介绍的Web浏览器,本专题通过简单自定义一个Web浏览器来简单介绍浏览器的工作原理,以及帮助一些初学者揭开浏览器这层神秘的面纱(以前总感觉这些应用感觉很深奥的,没想到自己也可以自定义一个浏览器出来),下面不啰嗦了,进入正题。

一、Web浏览器的介绍  

  Web浏览器是指可以显示Web服务器或者本地文件系统中的Html文件内容,并让用户与这些文件交互的一种软件,它是网络服务的客户端浏览程序,可向Web服务器发送请求,并对服务器返回的超文本信息和各种媒体、图片进行解释和显示。

浏览器主要通过Http协议与服务器交互并获得网页,现在主流的浏览器有:IE,Google Chrome(谷歌浏览器)、Mozilla Firefox(火狐)、Opera浏览器、世界之窗、360安全浏览器等。

Web浏览器的组成

  一般来说,Web浏览器由控制器和解释器组成,控制器负责解释鼠标点击与键盘输入,并调用其他组件用于执行用户的指定的操作。例如,当用户输入一个URL或单击一个超链接时,控制器接收并分析该命令,调用一个HTML解释器来解释该页面,并将解释后的结果显示在用户的浏览器上。

  解释器对于浏览器来说是很重要的, 解释器,也就是解释引擎,负责对网页语法(如HTML、Javascript)的解释并显示网页,解释器决定了浏览器如何显示页面,是浏览器最重要最核心的一个部分,所以一般我们所说的浏览器内核指的就是浏览器的解释器。

  不同浏览器产品可能使用同一个内核,浏览器内核常见的有四种:Trident、Gecko、PrestoWebkit, 他们与主流浏览器的对于关系如下表:


内核


浏览器产品


Trident


IE,Maxthon(傲游),世界之窗,腾讯TT,搜狗浏览器,360安全浏览器


Gecko


Mozilla Firefox(火狐)


Presto


Opera浏览器


Webkit


苹果Safari浏览器,Google Chrome(谷歌浏览器)及苹果Iphone手机浏览引擎

二、.NET平台对浏览器开发的支持

  浏览器软件一般都不是从头开始开发的,而是基于某种内核之上的扩展。同样,微软.NET平台封装了IE浏览器内核并以COM组件的形式提供用户,这个COM组件就是WebBrowser控件,该控件实现了浏览器中几乎全部的基本功能。  

  WebBrowser就是一个以IE(Trident)为内核,实现了基本功能的Web浏览器。使用WebBrowser控件可以在Windows窗体应用程序中浏览网页,WebBrowser控件位于工具箱中,使用时只需要将它直接拖拉到程序窗口中。

这里我直接摘自MSDN中的一个表来说明的:

名称 说明

Document 属性


获取一个对象,用于提供对当前网页的 HTML 文档对象模型 (DOM) 的托管访问。


DocumentCompleted 事件


网页完成加载时发生。


DocumentText 属性


获取或设置当前网页的 HTML 内容。


DocumentTitle 属性


获取当前网页的标题。


GoBack 方法


定位到历史记录中的上一页。


GoForward 方法


定位到历史记录中的下一页。


Navigate 方法


定位到指定的 URL。


Navigating 事件


导航开始之前发生,使操作可以被取消。


ObjectForScripting 属性


获取或设置网页脚本代码可以用来与应用程序进行通信的对象。


Print 方法


打印当前的网页。


Refresh 方法


重新加载当前的网页。


Stop 方法


暂停当前的导航,停止动态页元素,如声音和动画。


Url 属性


获取或设置当前网页的 URL。设置该属性时,会将该控件定位到新的 URL。

三、在.NET平台下自定义Web浏览器

下面是自定义浏览器的一些效果图:

浏览器的主页面:

点击查看->源文件->UTF-8后就可以查看Html的源码界面:

关于窗口的设计页面:

在搜索栏里面输入下载后利用百度搜索引擎后显示的页面:

四、总结

本专题主要对Web浏览器的介绍,并且自定义了一个简单的Web浏览器,希望通过本专题,大家可以对浏览器的工作原理有所了解。如果大家有什么任何疑问或者我有说的不对的地方还请大家留言来告诉我。讲到这里本专题也算结束,后面将介绍TCP编程和UDP编程,以及介绍完这两个专题后将为大家介绍如何开发一个即时通信聊天的工具(类似QQ的应用程序)。

补充: 鉴于很多朋友推荐使用非IE内核来实现一个浏览器的功能,这里分享下Webkit.net(WebKit .NET 是一个 C# 的组件封装了 WebKit 浏览器引擎,通过它可以在 .NET 应用中简单的使用(Google Chrome的内核)WebKit 浏览器引擎)的源码地址,也给有兴趣的朋友研究,当然我也会研究下,之后会和大家分享下这个工具的使用。同时感谢大家的留言和建议。
Webkit.net源码地址为:http://sourceforge.net/projects/webkitdotnet/

如果觉得有帮助的还请大家推荐下, 源代码链接为:http://files.cnblogs.com/zhili/WebBrowser.zip

转自:http://www.cnblogs.com/zhili/archive/2012/08/24/WebBrowser.html

时间: 2024-12-26 16:57:39

专题四:自定义Web浏览器的相关文章

[C# 网络编程系列]专题四:自定义Web浏览器

转自:http://www.cnblogs.com/zhili/archive/2012/08/24/WebBrowser.html 前言: 前一个专题介绍了自定义的Web服务器,然而向Web服务器发出请求的正是本专题要介绍的Web浏览器,本专题通过简单自定义一个Web浏览器来简单介绍浏览器的工作原理,以及帮助一些初学者揭开浏览器这层神秘的面纱(以前总感觉这些应用感觉很深奥的,没想到自己也可以自定义一个浏览器出来),下面不啰嗦了,进入正题. 一.Web浏览器的介绍 Web浏览器是指可以显示Web

[C# 网络编程系列]专题三:自定义Web服务器

转自:http://www.cnblogs.com/zhili/archive/2012/08/23/2652460.html 前言: 经过前面的专题中对网络层协议和HTTP协议的简单介绍相信大家对网络中的协议有了大致的了解的, 本专题将针对HTTP协议定义一个Web服务器,我们平常浏览网页通过在浏览器中输入一个网址就可以看到我们想要的网页,这个过程中浏览器只是一个客户端,浏览器(应用层应用程序)通过HTTP协议把用户请求发送到服务端, 服务器接受到发送来的HTTP请求,然后对请求进行处理和响应

[转]Oracle分页之二:自定义web分页控件的封装

本文转自:http://www.cnblogs.com/scy251147/archive/2011/04/16/2018326.html 上节中,讲述的就是Oracle存储过程分页的使用方式,但是如果大量的页面要使用这个分页存储过程,如果利用上节的方式,势必要书写大量的代码.如何才能够少些代码书写量呢?当然了,利用自定义web控件进行一下封装,也许是一个好方法,但是如何进行封装呢? 首先,就是在项目中添加一个“Web 用户控件“的页面,我们定义为:MyPagination.ascx 然后,就是

自定义Web框架

Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #!/usr/bin/env python #coding:utf-8   import socket   def handle_request(client):     buf = client.recv(1024)     client.send

DevExpress XtraReports 入门四 创建 Web 报表

原文:DevExpress XtraReports 入门四 创建 Web 报表 本文只是为了帮助初次接触或是需要DevExpress XtraReports报表的人群使用的,为了帮助更多的人不会像我这样浪费时间才写的这篇文章,高手不想的看请路过 本文内容来DevExpress XtraReports帮助文档,如看过类似的请略过. 废话少说 开始正事 一.创建 Web 报表并绑定数据  启动 MS Visual Studio (2005.2008.或 2010). 新建一个 ASP.NET Web

Tomcat的四种web应用部署方式详解

在Tomcat中有四种部署Web应用的方式,简要的概括分别是: (1)利用Tomcat自动部署 (2)利用控制台进行部署 (3)增加自定义的Web部署文件(%Tomcat_Home%\conf\Catalina\localhost\AppName.xml) (4)手动修改%Tomcat_Home%\conf\server.xml文件来部署web应用 第一种方式:利用Tomcat自动部署 利用Tomcat自动部署方式是最简单的.最常用的方式.若一个web应用结构为D:\workspace\WebA

jQuery自定义Web页面鼠标右键菜单

右键菜单是固定的,很多时候,我们需要自定义web页面自定义菜单,指定相应的功能. 自定义的原理是:jQuery封装了鼠标右键的点击事件(“contextmenu”),首先屏蔽浏览器原始的点击事件,接着,写自己的需要的显示的右键菜单最后,就是什么时候隐藏显示出的右键菜单了. 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DT

网络知识 - 简易的自定义Web服务器

简易的自定义Web服务器 基于浏览器向服务端发起请求 两台主机各自的进程之间相互通信,需要协议.IP地址和端口号,IP表示了主机的网络地址,而端口号则表示了主机上的某个进程的地址,IP加Port统称为端点(EndPoint),在网络编程的世界里,.NET提供了Socket(套接字)类,此类处于传输层之中,Socket使开发人员可以以编程的方式侦听远程主机向本机发送的数据,并对到达传输层的数据包做出处理,同时它还可以向远程发送数据包.也即,Socket用于处理传输的数据. using System

zabbix自定义web检测

zabbix自定义web检测 本博客使用zabbix 版本 4.0.3 Web监控的原理 Web监控即对HTTP服务的监控,模拟用户去访问网站,对特定的结果进行比较,如状态码.返回字符串等特定的数据进行比较和监控,从而判断网站Web服务的可用性 大体步骤包括首页->登录->检测登录->退出->检测退出 5个步骤 监测静态网站(网站首页) 点击右上角的创建web场景 配置步骤 !!!注:检测字符串,具体是zabbix检索返回的response里面的还是别的地方的这个我也不太清楚,如果