本文将逐个介绍新引入的特性,并配以简单的代码实例,相信">开发人员会更易掌握。
Safari 一直对 Apple 来说是很重要的,近几年 Apple 更是频频出击:推出扩展功能,推出 Windows 版本,在 HTML5 的支持上也不遗余力。在 Safari 5.1 中引入了很多新特性,其中有些是需要配合 Mac OSX 的最新版本(Lion)才能最大的发挥它的特性,有些是跨平台通用的。这里我们可以先看几个例子:
阅读列表(reading list):Apple 终于在 Safari 上推出了类似于“稍后再读”的功能,这个功能有点类似与现
有的 “Read it later” 和 “Instapaper”,可以把网址先存在列表里等以后有时间的时候再翻出来
慢慢品读。不同点在于 “Read it later” 和 “Instapaper”的应用范围已经非常广泛了,在许多应用中都已经整合了这俩个服务,而且它们还提供了离线阅读的功能。而阅读列表的优势在于通过直接集成在 Apple 自家的浏览器中可以享受一些便利,
例如可以通过 iCloud 自动将桌面版 Safari 的阅读列表与 iOS 中的 Mobile Safari 无缝同步,对用户来说非常易用,而且通过与 Mac 应用的集成使得添加网址十分方便。 阅读器与 Mac 整合:通过和 Mac 的整合,Lion 系统中的很多应用里,都可以通过按住 Control 键再点击来把链接加入到阅读列表当中,非常方便。 扩展功能窗口(extension popover):在 Safari 的工具栏按钮上可以绑定浮动窗口,当点击工具栏按钮时可以弹出。 扩展菜单(extension menu):在 Safari 的工具栏中终于可以添加下拉菜单了。 Multi-Touch 手势:Safari 5.1 中终于将 iOS 中大家已经非常熟悉的 Multi-Touch 手势引入到了桌面版,这样在 Lion 下通过触摸板就可以双指开合来缩放网页上的文字和图片,也可以双指轻拍来自动缩放。当然也可以通过手势轻扫来前进和后退页面。 惯性滚动:iOS 上很赞的惯性滚动也被搬到了桌面版 Safari 上,当您用手势向上或者向下滚动时,即使手指已经离开触摸板,惯性滚动会让滚动继续维持少许,就像现实世界中的惯性滚动一样。
更多的 Safari 5.1 特性可以参考 Apple 官方的网址,这里就不一一列举了。让我们回到重点,Safari 5.1 对于扩展开发者来说,有什么变化呢?嗯,让我们从两个方面来看看吧,一方面是在 Safari 5.1 中新增加了哪些扩展事件,另一方面是新增加的扩展界面。
新增事件介绍
针对窗口 / 标签页的新增事件介绍
在之前的 Safari 版本中,我们可以通过 API 来打开一个窗口或者标签页,也能够获取到当前已经打开了的窗口和标签页。但是却不能获取到这些窗口和标签页的状态变化,比如我们想在标签页激活或者停用时做一些事情就不行,这无疑限制了扩展的功能。在 Safari 5.1 中,这一现状终于得到了改善,它对窗口 / 标签页的状态发生变化时 Safari 会触发相应的事件,我们的扩展中只要在适当的地方监听这些新增事件就可以了。这些事件包括:
打开 / 关闭 (Open/Close):当窗口 / 标签页第一次打开或者关闭时 Safari 会发送此事件给相应的对象 激活 / 非活跃 (Activate/Deactivate):当窗口 / 标签页被激活或者非活跃时 Safari 会发送此事件给相应的对象 导航前 (Before Navigate):当有新 URL 即将加载时 Safari 将会发送次事件给相应对象,在这里我们能在页面加载前做出判断来阻止某些网页。 导航 (Navigate):当新 URL 页面的主体加载完成时 ,Safari 将会发送次事件给相应对象