JavaScript 网页编程从入门到精通 (清华社"视频大讲堂"大系·网络开发视频大讲堂)
上QQ阅读APP看书,第一时间看更新

2.5 浏览器与JavaScript

Web浏览器一般包括两部分:Shell和内核。Shell是指浏览器的外壳,如菜单、工具栏等,主要提供用户界面操作、参数设置等,它是调用内核来实现各种功能的UI;内核是浏览器的核心,是基于标记语言显示内容的程序或模块。

目前主流浏览器包括IE、FireFox、Opera、Safari、Chrome。

2.5.1 浏览器内核

浏览器内核可以分为两部分:渲染引擎和JavaScript引擎。它们负责取得网页内容(HTML、XML、图像等)、整理信息(如加入CSS等),以及计算网页的显示方式,然后输出显示。JavaScript引擎负责解析JavaScript脚本,执行JavaScript代码实现网页的动态效果。

常见的浏览器内核包括4种:Trident、Gecko、Presto、Webkit。

Trident又称MSHTML,是微软开发的渲染引擎,包含JavaScript引擎JScript, JScript已经深入Windows系统,如Windows Media Play、Windows Explorer、Outlook Express等都使用它。

Gecko是开源的渲染引擎,包括JavaScript引擎SpiderMonkey(Rhino)。主要使用者为Firefox。

Webkit是苹果公司基于KHTML开发的。它包括Webcore和JavaScriptCore(SquirrelFish、V8)两个引擎。主要使用者有Safari和Chrome。

Presto是由Opera公司开发的,用于Opera的渲染引擎。Macromedia Dreamweaver(MX版本及以上)和Adobe Creative Suite 2也使用了Presto的内核。

主流浏览器所使用的内核分类如下。

Trident内核:IE、MaxThon、TT、The World、360、搜狗浏览器等。

Gecko内核:Netscape 6及以上版本、Firefox、MozillaSuite/SeaMonkey等。

Presto内核:Opera 7及以上。

Webkit内核:Safari和Chrome等。

2.5.2 浏览器错误报告

浏览器都具有某种JavaScript错误报告机制,但在默认情况下,都会隐藏此类信息,在基于浏览器编写JavaScript脚本时,用户应该启用浏览器的JavaScript报告功能,以便及时收集错误信息。

1.IE

在IE中可以通过设置让错误对话框一发生错误就显示出来。为此,要打开“工具”菜单中的“Internet选项”对话框,切换到“高级”选项卡,选中“显示每个脚本错误的通知”复选框,如图2-4所示。单击“确定”按钮保存设置。

图2-4 设置IE选项

保存了设置之后,就会变成一有错误发生随即自动显示出来。另外,如果启用了脚本调试功能(默认是禁用的),那么在发生错误时,不仅会显示错误通知,而且还会看到另一个对话框,询问是否调试错误。要启动脚本调试功能,也可以在“高级”选项卡中取消选中“禁用脚本调试”复选框。

2.Firefox

在默认情况下,Firefox在JavaScript发生错误时不会通过浏览器界面给出提示。但它会在后台将错误记录到错误控制台中。单击“工具”菜单中的“错误控制台”可以显示错误控制台,如图2-5所示。错误控制台中实际上还包含与JavaScript、CSS和HTML相关的警告和信息,可以通过筛选找到错误。

图2-5 Firefox错误控制台

在发生JavaScript错误时,Firefox会将其记录为一个错误,包括错误消息、引发错误的URL和错误所在的行号等信息。单击文件名即可以只读方式打开发生错误的脚本,发生错误的代码行会突出显示。

目前,最流行的Firefox插件Firebug已经成为开发人员必备的JavaScript纠错工具。在有JavaScript错误发生时,Firebug图标会显示错误的数量,单击可以打开Firebug控制台,其中显示有错误消息、错误所在的代码行(不包含上下文)、错误所在的URL以及行号,如图2-6所示。

图2-6 Firebug错误控制台

在Firebug中单击导致错误的代码行,将在一个新Firebug视图中打开整个脚本,该代码行在其中突出显示。

除了显示错误之外,Firebug还有更多的用处。实际上,它还是针对Firefox的成熟的调试环境,为调试JavaScript、CSS、DOM和网络连接错误提供了诸多功能。

3.Safari

Windows和Mac OS平台的Safari在默认情况下都会隐藏全部JavaScript错误。为了访问到这些信息,必须启用“开发”菜单,单击“偏好设置”,然后在“高级”选项卡中选中“在菜单栏中显示‘开发’菜单”命令。启用此项设置之后,就会在Safari的菜单栏中看到一个“开发”菜单,如图2-7所示。

图2-7 启动Safari开发菜单

“开发”菜单中提供了一些与调试有关的选项,还有一些选项可以影响当前加载的页面。单击“显示错误控制台”选项,将会看到一组JavaScript及其他错误,控制台中显示着错误消息、错误的URL及错误的行号,如图2-8所示。单击控制台中的错误消息,就可以打开导致错误的源代码。除了被输出到控制台之外,JavaScript错误不会影响Safari窗口的外观。

图2-8 显示错误控制台

4.Opera

Opera在默认情况下也会隐藏JavaScript错误,所有错误都会被记录到错误控制台中。要打开错误控制台,需要选择“开发者工具”菜单,单击“Web检查器”命令,打开“Web检查器”,然后选择Console选项。与Firefox一样,Opera的错误控制台中也包含了除JavaScript错误之外的很多来源,如HTML、CSS、XML、XSLT等的错误和报告信息。要分类查看不同来源的消息,可以使用左下角的下拉选择框,如图2-9所示。

图2-9 错误控制台

错误消息中显示着导致错误的URL和错误所在的线程。有时还会有栈跟踪信息。除了错误控制台中显示的信息之外,没有其他途径可以获得更多信息。

5.Chrome

与Safari和Opera一样,Chrome在默认情况下也会隐藏JavaScript错误。所有错误都将被记录到JavaScript控制台中。要查看错误消息,选择“工具”菜单中的“JavaScript控制台”命令即可,如图2-10所示。

图2-10 JavaScript控制台

打开窗口中包含着有关页面的信息和JavaScript控制台。控制台中显示着错误消息、错误的URL和错误的行号。单击JavaScript控制台中的错误,就可以定位到导致错误的源代码行。