@scomper

Safari 和网页浏览的那些事

2018.04.11

Safari 可以说是自己使用最频繁的软件,曾经用 Timing 进行过使用统计,浏览器能占到自己电脑使用时间的 1/3,虽然同时也安装了 Chrome 浏览器,不过主场绝对是 Safari。对它的好感来自于 iCloud 钥匙串同步、阅读列表,和 iOS 设备之间的 Handoff 推送、好用的扩展等等。

浏览器是那种看上去很简单,但是使用过程中会产生很多疑问的应用。如果按照功能划分,使用浏览器时我们主要面对的问题是:内容控制(改善阅读体验)、网络畅通(无障碍的访问)、内容采集(稍后阅读和存档)、隐私管理(历史记录和无痕浏览),以及浏览器自身的一些配置问题,从字面上去理解有点偏技术术语,转换成我们平时经常遇到的问题就直观很多。

  • Safari 的默认搜索引擎如何更换?
  • 下载的压缩文件为什么自动解压缩了?
  • 如何快速的打开和关闭多个标签页,标签页之间如何快速切换?
  • 有哪些提高浏览效率的快捷操作,翻页、回退、刷新?
  • 如何快速的保存网页中的内容,文本、截图、图片等?
  • 如何屏蔽网页中的广告和弹出窗口?
  • 如何强制视频播放网站使用 HTML5 来播放?
  • Safari 和 Chrome 的书签如何同步?
  • 清除历史记录时能保留网站的登录信息吗?
  • 打开某些网站时弹出的通知如何关闭?

回答问题之前,有必要梳理一下 Safari 的基本功能点和设置,前面的几个问题也就有了答案。

搜索和搜索引擎

Safari 的地址栏有几种工作状态:搜索、添加到阅读列表、阅读模式。地址栏处于空白等待输入内容时,此时点击地址栏里的放大镜 🔍 图标就能切换搜索引擎。如果网页已经打开,鼠标滑动到地址栏会出现 + 添加到阅读列表的标记,具体的文章页面添加到阅读列表前还会出现「阅读视图」的图标。

点击放大镜图标展开的下拉菜单中,不仅会显示可以切换的几个搜索引擎,还会显示最近的搜索记录,如果要清除这些搜索记录可以点击最底部的「清除最近的搜索」。选择「谷歌」作为搜索引擎需要挂代理才能正常工作,其他搜索引擎推荐的选择顺序是:DuckDuckGo > 必应 > Yahoo。

当我们在地址栏输入内容的时候,其实 Safari 已经开始在后台检索,它会尝试列出搜索引擎 ① 给出的搜索建议,Safari 的搜索建议 ② 会从 Apple 服务器获取新闻、维基百科、iTunes 音乐、天气预报、体育信息、股票价格、以及 Apple 帮助等内容。① 和 ② 都需要访问外部网络,③ 则是搜索本地保存的 Safari 浏览历史记录。遇到网络状况不好的时候,前两者会影响 Safari 的响应速度。大多数国内用户,搜索引擎可以改成「必应」,「包括搜索引擎建议」和「包括 Safari 建议」这两项都可以不勾选。

下载保存的位置和压缩包

Safari 浏览器会在下载后解压缩文件,如 .zip 文件。如果不喜欢这个特性,可以在 Safari 的偏好设置「通用」选项卡中把「下载后打开“安全的”文件」勾选去掉。

下载列表能帮助我们快速定位到下载的文件,建议将自动移除下载列表项改为:一天之后,定期自动清除下载记录。大多数情况下使用 Safari 来下载文件速度也让人满意。

如果推荐第三方的下载软件,FOLX 5 是个不错的选择,自动下载分类,多线程支持磁力链接的 BT 客户端。需要注意的是不要在 Mac App Store 购买,官网和 Mac App Store 提供的版本之间功能差距比较大,到官网下载。

国内的很多下载只提供了迅雷的链接(thunder://),遇到这样的情况还是迅雷吧。安装「迅雷」建议不要安装迅雷的浏览器扩展,下载扩展会劫持下载链接,很多时候反而会造成困扰。另外还可以对「迅雷」进行适当的精简,既不影响功能又能让它显得「单纯」一些。

  • 每次更新迅雷后打开一次,然后退出;
  • 到「应用程序」找到迅雷,右键「显示包内容」
  • Bundles 文件夹下删除 xPlayer 播放器
  • PlugIns 文件夹只保留必要的几个插件

高段位和更绿色环保的视频下载方式,可以阅读另一篇专门的介绍《HOMEBREW 和命令行视频下载》,文中介绍了使用 you-get、youtube-dl 下载各大视频网站视频的方法。

书签和标签页

书签和标签页体现了 Safari 的浏览效率,对于经常需要访问的网站,我们有几种方式来提高效率:

  • 将经常需要访问的网站放在书签的「个人收藏」分类中;
  • 书签菜单中勾选「在个人收藏中显示经常访问的网站」;
  • 在书签文件夹上右键「在新标签页中打开」会加载书签文件夹中包含的所有网站;
  • 标签页上右键菜单可以快速的「关闭其他标签页」;
  • 偏好设置标签页选项卡中默认定义了标签页切换的快捷键「⌘1~⌘9」;
  • 按住 ⌘ 键点击链接会在新标签页中打开。

个人收藏栏有两种表现形式,一种是传统的收藏栏(显示 - 显示个人收藏栏)的方式,另一种是在地址栏自动展开,当我们点击地址栏输入时会弹出。在具体的标签页上右键还可以「固定标签页」,即便退出 Safari 再次打开依旧能停留在标签栏的左边。

标签页支持拖拽,按住某一个标签页拖移到 Safari 窗口之外,会以新的窗口的形式打开网页。合并多个单独的 Safari 窗口通过菜单项「窗口 - 合并所有窗口实现」。

如果启用了 iCloud,Mac 上打开的标签页会以 ☁️️ 云标签的形式体现在 iPad、iPhone 上,点击右上角的「标签页概览」,页面底部会显示其他设备当前打开的标签页。当然,这只是 Safari 通过 iCloud 同步实现的一部分功能,更重要的是「自动填充的用户名和密码」也会随之同步到同一个 Apple ID 的其他设备。

启用云标签和 Safari 密码同步,需要满足几个条件:

  • 使用同一个Apple ID 登录 Mac 和 iOS 设备;
  • Mac 和 iOS 设备的 iCloud 设置中勾选了「Safari 浏览器」
  • Mac 端 Safari 的密码设置中勾选了「自动填充用户名和密码」,iOS 的 Safari 设置中同样启用了「自动填充 - 名称和密码」。

其他设备间的同步和内容推送还包括:阅读列表的同步、Handoff 接力(Mac 上打开 iOS 设备上打开的网页)。

浏览网页的快捷操作

观看「系统偏好设置 - 触控板」操作的演示,能直观的看到不少能用在 Safari 浏览器中的操作:

  • 三指轻点,查单词
  • 双指上下移动,按自然方向滚动页面
  • 双指捏合,缩放页面
  • 双指轻点,按页面框架缩放对象
  • 双指左右滑动,页面会在访问记录中回退和前进

其他一些常用的键盘快捷键:

  • 浏览和翻页,空格键(向下翻页) 和 ⇧+空格(向上翻页)
  • 按住 ⌘ 点击链接在新标签页中打开
  • 按住 ⌃ 点击地址栏,拷贝、粘贴并搜索
  • 按住 ⌥ 点击链接,将链接页面保存为 HTML
  • 刷新和重新载入页面,⌘ R
  • 自动填写表单,⇧⌘A,只要是 Safari 记住的密码和表单,鼠标点击表单输入框后都可以用快捷键激活实现快速填写,例如壹页单章的阅读密码就可以用这种方式快速填写。

阅读体验和内容采集

Safari 浏览器内置了阅读器模式,对于支持的网页内容会在地址栏左侧显示阅读器的图标,阅读模式下,会只显示网页的正文部分,并且可以修改字体和背景色。符合规范的网页大多数都能良好支持阅读器模式,例外的情况以及网文小说这样的连载体就需要扩展来改造内容。

排查网页访问的诸多问题的时候,通常要做的第一步就是停用各种 Safari 的扩展,从这个意义上来说,扩展虽然能在功能上增加更多可能,但是也意味着会带来一些潜在的问题,另一方面,扩展拥有相当大的访问页面内容和输入的权限,从隐私安全的角度考虑,对于扩展的安装还是要有一个谨慎的态度。使用了这么久的 Safari,如今我还保留和使用的扩展只有几个,供参考:

  • uBlock Origin,广告和隐私保护,支持自定义规则和网页元素拦截,自定义规则列表支持导入和分享,附上一份我的自定义规则
  • Evernote Web Clipper,用于采集网页内容,这么多年了依旧还是 Evernote 在这方面做的更好一些,通过 Evernote 客户端安装扩展。Evernote 的扩展选项里推荐调整为「自动关闭剪藏」,去掉相关搜索显示的勾选。

  • Tampermonkey,浏览器里的用户脚本管理器,通过安装脚本获得更丰富的功能
  • 1Password,密码管理,用于在 Safari、Chrome 之间共享登录密码,通过 1Password 客户端安装扩展

Tampermonkey 只是一个脚本管理器,安装后还需要进一步为其增加用户脚本才能发挥作用。安装脚本需要访问另一个网站 GreasyFork.org,脚本的选择上依旧建议只安装被广大网友推荐和信任的脚本(通过得分和下载量来判断)。

Tampermonkey 脚本管理器里,我安装了 5 个脚本,除了 Google 直链和 Google 网页翻译的其他几个都是为改善阅读体验而安装的。

  • 简悦,和 Safari 自带的阅读器很像,同样是为了实现沉浸式阅读对内容进行重新排版。脚本版的「简悦」功能上比较简化,它还有单独的用于 Chrome、Firefox 的扩展,功能更完整。
  • 小说阅读脚本,阅读网文的强悍工具,包含国内各种网文网站的内容过滤和关键词替换,会按章节对内容进行重新排版和布局,支持自动翻页。自动翻页这一点很实用,可以一直一直向下滚动页面。
  • Yet Another Weibo Filter,微博内容过滤,提供了丰富的内容模块控制,让你看想看到的内容。

和其他几个扩展相比,平时使用中 uBlock Origin 容易诱发的问题更多一些,例如,网页显示不正常,貌似 CSS 风格表丢失导致的内容排版混乱等等。通过 uBlock Origin 的控制面板可以看到,uBlock Origin 里包含很多规则,有些规则过于严格就会导致网页显示出问题。

要排查是否是 uBlock Origin 导致的网页显示问题,简单的第一步是先停用 uBlock Origin,点击扩展的图标弹窗里的蓝色电源图标,再刷新页面。如果页面显示正常了也就基本定位是 uBlock Origin 扩展导致的,可以进一步查找是那个规则导致的问题。

  • 点击扩展弹窗里的「查看网络访问请求日志」图标;
  • 确认「uBlock ─ 网络请求日志页面」顶部页面选择里是要检查的页面,点击刷新按钮;
  • 查看访问记录里显示为红色的拦截的条目,单击红色的条目会弹出拦截的具体规则;
  • 回到 uBlock Origin 的控制面板,找到具体的规则去掉启用的勾选即可。

uBlock Origin 里的规则的确很多,附上我的启用情况供参考。

显示「开发」菜单

在 Safari 偏好设置的「高级」选项卡里勾选「在菜单栏显示“开发”菜单」,这里介绍开发菜单里我们会经常用到的几个功能。

  • 用户代理,浏览网页的时候,服务器会判断你的浏览器,以便对内容进行适配。服务器端是基于浏览器的「用户代理」类型来判断你使用的浏览器和设备的,通过开发菜单里的用户代理选择,我们可以「欺骗」服务器端我们现在使用的浏览器和设备。例如,在访问「爱奇艺」这样的视频网站是,将用户代理选择为 Safari iOS 11.0 ─ iPad,再刷新页面就能以 HTML5 的方式加载视频(资源占用小更省电),不会再以 Flash 方式播放。

  • 网页检查器,网页检查器除了可以查看本机的网页刷新和加载情况,也可以用来检查 iOS 设备上的网页加载情况。要在「开发」菜单的网页检查器里看到 iOS 设备,需要先到 iOS 的「设置 - Safari - 高级」里启用「Web 检查器」,然后到 iOS 的 Safari 里打开需要检查分析的网页,此时通过「开发 - iPhone X」点击菜单项里显示的网站就能打开网页检查器页面。(如果没有勾选「通过网络连接」,需要将 iOS 设备通过数据线连到 Mac )

  • 响应式设计模式,响应式设计模式是对前端开发人员非常友好的一个功能,可以按照不同终端设备的分辨率预览页面效果,反复点击设备的图标还能在分屏、竖放和横放之间切换显示效果。博客作者可以用这个功能查看自己网站在不同终端上的效果,从而进行必要的主题调整。

  • WebRTC,WebRTC 泄漏真实 IP 的问题由来已久,Safari 里避免这个问题的方式也很简单,可以通过「开发 - WebRTC」去掉「启用旧 WebRTC API」的勾选来实现。检查浏览器是否暴露 IP 可以挂代理后访问 https://ip.voidsec.com 检查,如果在底部的 WebRTC 区域看到 IP 地址,不管是局域网地址或是公网 IP,都说明你 IP 泄漏了。

Safari 和 Chrome 的书签同步

不同浏览器或者跨平台的浏览器之间同步书签,最原始的方式就是通过菜单项导入导出书签(文件 - 导入自、导出书签),不方便的地方是这种同步不够实时,需要人工参与,好处是能以文件的形式定期备份书签。

同步书签前为了避免书签混乱,有必要规划好书签的分类方式。Safari 中的「个人收藏」和 Chrome 对应的是「书签栏」,其他书签 Safari 中最好是统一放在和「个人收藏」平级的「书签菜单」(没有可以新建一个)文件夹之中,这样同步后会对应同步到 Chrome 的「其他书签」当中。

使用 iCloud for Windows 实现书签同步
Windows 平台上安装 iCloud for Windows 可以简化书签跨平台同步的问题,适合于经常在两个平台之间切换的用户 iCloud for Windows 支持 Chrome、Firefox 和 IE 之间的书签同步。如果不想 iCloud 同步云盘和邮件等其他内容,在 iCloud 面板中去掉它们的勾选,只保留书签。

Microsoft Edge 怎么办,iCloud 书签同步的选项里只有 IE,这个操作起来要麻烦一点,需要修改注册表。具体的操作方式可以参阅《让浏览器书签在 Microsoft Edge 和 Safari 之间同步》。

Mac 里除了系统自带的 Safari,还是推荐安装一个 Chrome,虽然是以 Safari 为主,不过遇到网页访问的问题有另一个可以切换的浏览器能更快的判断问题。Chrome 设置里登录自己的帐号,可以实现 Chrome 设置同步,包括扩展和书签等,这样不同平台里 Chrome 书签都是一致的。

Chrome 的 iCloud 书签扩展只是提供给 Windows 平台使用的,对于很少使用 Windows 或者只在 Mac 平台工作的用户而言,要搞定 Mac 里的 Safari 和 Chrome 书签同步需要另外想办法。以前很多人都会推荐使用 Xmarks,可惜 2018.5.1 以后它家的服务就停了,好在还有 Pinboard (收费服务 $11/年)可以选择(Pinboard 是一个网络书签服务,提供了书签收藏、管理、存档和社交分享等功能)。

网友还推荐了一款 Mac 应用 Synkmark($16.95),Synkmark 是一款收费应用,不仅可以用来同步 Safari 和 Chrome 的书签,还提供了书签验证的功能,对于书签成灾的用户是很有帮助的。

第一次打开 Synkmark 会提示配置同步的方向,对应浏览器的 Import 和 Export 都勾选的话就是双向同步,后续也可以在软件的设置中修改。

官网可以下载试用,软件提供了 3 天的试用期。Synkmark 的书签验证功能很实用,在我的书签里分析后挖出了 10 个已经 404 的网址,Synkmark 的书签同步需要开启软件后才能工作,而且还需要在 Chrome 里安装一个扩展来实现对 Chrome 书签的读取和写入。

简单使用下来,发现几个需要注意的地方:

  • 阅读列表 Synkmark 也会同步,同步后打开 Chrome 书签时让我有点「炸裂」,全部都堆到了其他书签里;
  • Synkmark 的同步需要开启软件后才能工作,没有后台模式;
  • 如无必要,同步设置里还是 Safari 导出(Export),Chrome 导入(Import)比较稳妥。

关于「书签」同步再一次让人体会到「省时间的方法不省钱,省钱的方法不省力」。

历史记录和快速记录

很多人不定期的会清空浏览历史,但是清空历史记录以后很多网站再次登录时又需要填写一次登录信息,虽然自动密码填充能带来一定的便利性,但是遇到淘宝、微博、V2EX 等等需要输入验证码的网站时就很让人厌烦。

能不能清空历史记录的同时保留登录信息(Cookie,储存在用户本地终端上的数据)呢?答案是可以的,Safari 里这项操作藏的比较隐蔽,按住 ⌥ 键点击菜单项里的「Safari 浏览器」就能看到「清除历史记录但保留网站数据」。

Safari 提供了几种清除历史记录的方式,可以按时间(过去 1 小时、今天、昨天、所有)清除以外,还可以显示所有历史记录,用搜索匹配的方式清除。搜索结果里可以单条右键清除,也可以 ⌘A 全选满足搜索条件的记录清除。

和经常清理「历史记录」的对应的另一波人是「一直」不清理历史记录,询问其目的竟然是为了保存浏览记录,便于后续查找。这种做法也不推荐,如果要保留某个网页的内容,可以采用「添加到阅读列表」的方式,Safari 的「偏好设置 - 高级」中可以勾选「自动存储文章以便离线阅读」。

除了 Evernote 这样的扩展保存网页以外,网页或内容的保存还有那些便捷方式呢:

  • 简单一些,选择「文件 - 导出为 PDF」或者打印成 PDF;
  • ⇧⌘4 截屏,不过和截屏比较起来,导出为 PDF 效果更好,内容检索和复制更方便;
  • 按住 ⌥ 键,点击文章的链接,会将链接的内容保存为 HTML 下载到「下载」文件夹;
  • 选中网页中的文本按住停留一会然后拖拽到桌面,这样操作会保存成一个文本;
  • 选中需要保存的文本内容,按 ⇧⌘Y 会将内容保存到内置的便笺应用,便笺的热键是全局性的,所以即便不打开这个应用也能粘贴内容;
  • 选中内容后通过右键菜单保存到「备忘录」

将内容复制内容到剪贴板也是个不错的方式,剪贴板中的内容会在启用了 Handoff 的设备之间传递,从而实现在 Mac 上复制 iPhone 上粘贴的效果。如果安装了 Paste 这样的剪贴板管理应用,还能保存近期的所有复制痕迹。

针对具体网站的设置

打开微博和一些 IT 媒体类的网站时,经常会弹出通知提示窗口。在地址栏右键单独调整「此网站的设置」,或者通过菜单项「Safari 浏览器 - 此网站的设置」修改已有的设置。

有些网页一打开就会自动播放音乐,如果不喜欢这一点,可以在「此网站的设置」里将自动播放设置为「停止播放声音媒体」,或者到偏好设置中将自动播放的行为默认都改为不播放。

「偏好设置 - 网站」中不仅能定义自动播放这样的行为的默认响应方式,也能调整其他功能项的默认方式。摄像头、麦克风、位置、Flash、自动播放的设置方式都类似。

  • 请求,每次打开新的网站是都会询问你处理方式;
  • 关闭,不询问直接保持关闭状态;
  • 打开,保持开启状态。

如果不喜欢经常弹出的「网站通知」,通知页面底部的去掉「允许网站请求权限发送推送通知」的勾选。


Safari 和网页浏览的事都在这里梳理一遍,不过故意漏掉了一个重要的部分。网络畅通如果不解决很多网站是无法访问的,而要解决这个问题,需要代理服务器,需要 Surge 这样的软件作为本地的代理,需要设置「代理」。这些内容展开就会是另一个「禁忌」的话题「科学上网」,当然,还有个选择就是忘掉还有Twitter、YouTube、GitHub 这样的网站。

另外,跨越是有成本问题的。私底下算过一笔帐:宽带费用是 1800/年(200MB),代理服务 600/年,对应的软件工具投入约 600/个,如果搭建了博客还有域名、证书、邮件服务、博客平台、MarkDown 应用 ... 单子拉的越长怨念越深,算了 🤑。其实原本只是想轻轻松松的上网刷刷页面,很多时候是被现实生生的被逼成了「高手」,因为复杂总是怀念以前的简单。

Comments
Write a Comment