2009-11-23 64 views
0

我在问自己浏览器是如何工作的。例如,浏览器如何告诉操作系统将鼠标指针从箭头更改为手形(IDC_HAND)。在桌面应用程序中,我知道使用Windows消息(右),但它是如何在浏览器中发生的?在这种情况下,Spy ++似乎不会捕获任何鼠标指针消息。你能帮我解释一下吗?浏览器和Windows消息传递

我想构建一个C#应用程序,它将检测鼠标指针的类型。

回答

1

浏览器视口是一个几乎没有任何标准事件的简单窗口。页面按像素呈现,稍后将作为位图处理。浏览器构建网页控件和显示元素的层次结构并将其保存在内存中。只要鼠标在页面上移动,浏览器算法就会搜索这个层次结构,以确定这些特定的坐标是属于某个按钮还是链接,然后将光标更改为指针。简而言之,这就是浏览器引擎的全部内容。将HTML解析为控件的层次结构,然后解析CSS并更新这些元素的属性,然后将控件的属性考虑到视口中,然后处理用户输入,并在需要时发起请求。浏览器引擎还执行JavaScript代码并对文档结构执行操作。

还要记住,FireFox也适用于Linux,在这种情况下,浏览器开发人员使用标准的Windows事件是没有意义的。一些基本的初始化代码肯定依赖于平台,但是在窗口准备好并且用户输入通过一些抽象层转发到核心之后,浏览器引擎无需担心底层操作系统及其事件系统。

相关问题