传统插件的后续步骤
网络平台能够实现令人惊叹的功能。得益于标准机构、浏览器厂商和网页开发者持续不懈的努力,网页标准功能丰富并持续改进。WebKit 项目在评估和实现网页标准时,特别强调安全性、性能和电池续航。这些标准现在包含了支持富媒体和交互体验所需的大部分功能,而这些功能过去需要像 Adobe Flash 这样的传统插件。今年秋季 Safari 10 发布时,Safari 将默认表现为用户的 Mac 上未安装常用传统插件。
在同时提供 Flash 和 HTML5 内容实现的网站上,Safari 用户现在将始终体验现代的 HTML5 实现,从而提升性能和电池续航。此政策及其益处同样适用于所有网站;Safari 没有内置例外列表。如果网站确实需要传统插件,用户可以在该网站上明确激活它。
如果您是一名网页开发者,您应该了解此更改将如何影响您的用户体验,如果您的网站部分内容依赖于传统插件。本文的其余部分将解释此政策的实施方式,并探讨减少网站对传统插件依赖的方法。
工作原理
默认情况下,Safari 不再告诉网站已安装常用插件。它通过不在 navigator.plugins
和 navigator.mimeTypes
中包含有关 Flash、Java、Silverlight 和 QuickTime 的信息来实现这一点。这使得同时具有插件和基于 HTML5 媒体实现的网站使用其 HTML5 实现。
在这些插件中,使用最广泛的是 Flash。大多数检测到 Flash 不可用但没有 HTML5 备用方案的网站会显示一条“未安装 Flash”的消息,并附带从 Adobe 下载 Flash 的链接。如果用户点击其中一个链接,Safari 将告知他们该插件已安装,并提供一次性激活或每次访问网站时激活的选项。默认选项是仅激活一次。对于其他常用插件,我们也有类似的处理方式。
当网站直接嵌入可见的插件对象时,Safari 会显示一个带有“点击使用”按钮的占位符元素。点击该按钮后,Safari 会向用户提供一次性激活插件或每次访问该网站时激活的选项。同样,默认选项是仅激活插件一次。

Safari 10 还包含一个菜单命令,用于重新加载已激活已安装插件的页面;它位于 Safari 的“视图”菜单和智能搜索字段重新加载按钮的上下文菜单中。所有控制哪些插件对网页可见以及哪些插件自动激活的设置都可以在 Safari 的“安全性”偏好设置中找到。
无论何时用户在网站上启用插件,只要用户定期访问该网站且网站仍在使用该插件,该插件就会保持启用状态。更具体地说,如果在某个网站上超过一个月没有看到该插件被使用,Safari 就会使在该特定网站上激活插件的用户请求过期。
给网页开发者的建议
在今年秋季 Safari 10 发布之前,我们鼓励您测试这些更改对您网站的影响。您可以通过安装 macOS Sierra 的测试版来完成。今年夏天晚些时候还将推出适用于 OS X Yosemite 和 OS X El Capitan 的 Safari 10 测试版。
为了避免您的用户必须在您的网站上明确激活插件,您应该尝试使用网络平台内置的技术来实现功能。您可以使用 HTML5 的 <audio>
、<video>
、Audio Context API 和 Media Source Extensions 来实现健壮、安全、定制化的媒体播放器。Safari 10 中的新功能是,可以使用 execCommand 将文本剪切或复制到剪贴板,这在以前只能通过插件实现。一系列 CSS 功能,包括动画、背景滤镜和字体特性设置可以为网站添加一些视觉上的润饰。而 WebGL 非常适合创建交互式 2D 或 3D 内容,例如游戏。
如果您为移动浏览器提供不同版本的网站,它可能已经使用网络标准实现了其媒体播放功能。随着浏览器继续从传统插件过渡,您可以通过向所有网站访问者提供相同的实现来保留用户的其他体验。
如果短期内无法替换基于插件的系统,您可能需要教您的用户如何在 Safari 中为您的网站启用该插件。在企业环境中,系统管理员可以部署受管理的策略,以便在必要时在特定网站上启用插件。
帮助我们帮助您
如果您发现您的网站部分内容无法在不使用传统插件的情况下实现,您可以通过告知我们来帮助自己和其他开发者。总的来说,每当网络平台未能满足您的需求时,我们都想了解。您的反馈已经并将继续影响 WebKit 项目和 Safari 团队的优先事项。要发送此类反馈,请发送电子邮件给或在 Twitter 上@ Jonathan Davis。
如果您对 Safari 使用 Flash 或其他插件的政策有疑问,请随时在 Twitter 上@rmondello联系我。