目录
- 扩展会保存哪些内容?
- 为什么需要那么多权限?
- 点击了裁剪,没有反应
- 卡在了「裁剪中」
- 卡在了「保存中」
- 改变默认的下载路径
- 我不想保存元信息文件
- 无法打开以前裁剪的内容
- 允许访问本地网址
- 浏览器弹出提示框提示:脚本无反应,询问是否中止
- 能把网页裁剪成单个文件?比如:裁剪成 mhtml、zip 或者 存成图片
- 为什么扩展不在「谷歌商店」上线
- 反馈新问题
扩展会保存哪些内容?
MaoXian 的裁剪过程,裁剪的是当前状态下的网页。主要的裁剪内容为文本信息和图片,具体的存储内容会因存储格式的不同而不同,并且有些内容需要在设置页面勾选才会保存。如下:
若存储格式为 HTML
会保存的内容
- 选区的文本
- 选区的图片
- 网页的样式
- 内嵌的网页 (iframe)
- 背景图(默认未保存)
- 网页图标(默认未保存)
- 网页字体(默认未保存)
- 声音(默认不保存)
- 视频(默认不保存)
- 画布节点(canvas,尝试保存当前状态为图片)
- embed 节点 (默认只保存图片)
- object 节点(默认只保存图片)
- applet 节点(默认不保存)
不会保存的内容
- 网页脚本 (即:javascript)
- 不显示的元素
若存储格式为 Markdown
会保存的内容
- 选区的文本
- 选区的图片
不会保存的内容和 HTML 一样,外加上不会保存网页样式。
为什么需要那么多权限
在详细解释各权限在 MaoXian 这个扩展中的用途之前,有必要先解释一下: 这些权限的说明文字是站在用户的角度来表述的,当你在浏览器上看到这些说明文字时,其潜台词为:这个扩展拥有了这个权限之后,它最大限度可以做到这个 (而不是,这个扩展拥有了这个权限后,就一定会做这个)。
下方是本扩展 manifest.json
文件里面的权限信息,由于这些权限很难用简练的文字表述出来,所以通过引用 manifest.json
文件里面的权限名来进行说明。
{
"permissions": [
"<all_urls>",
"webNavigation",
"webRequest",
"webRequestBlocking",
"storage",
"unlimitedStorage",
"tabs",
"downloads",
"downloads.open",
"nativeMessaging"
]
}
下面我们详细说明这些权限在 MaoXian 中的用途:
权限:<all_urls>
- Chrome 描述文字:读取和更改你访问的所有网站的数据
- Firefox 描述文字:访问所有网站的的数据
- 实际用途:MaoXian 使用该权限,去做一些初始化工作:初始化消息通道、如监听快捷键C、查找之前有没有对类似网页进行裁剪过,如果有,找出当时的裁剪信息(记住选取功能)等等。
权限:webNavigation
- Chrome 描述文字: 读取你的浏览历史
- Firefox 描述文字:读取你的浏览活动
- 实际用途: MaoXian 使用该权限,去获取当前网页的所有内嵌网页的信息,为的是向其发送消息,以便能裁剪这些内嵌的网页。
权限:webRequest 和 webRequestBlocking
- Chrome 描述文字:无描述
- Firefox 描述文字:无描述
- 实际用途: MaoXian 使用该权限,去记录图片请求的文件格式,以便在保存那些网址不包含扩展名的图片时,能修复其扩展名(注:有些浏览器在打开无扩展名的图片时,无法正常显示)。并且使用该权限去修改 MaoXian 扩展发出的请求的请求头(request header),对应于 设置页面 > 高级设置 > 设置 Referrer,这个是为了隐私保护的,默认的资源请求,包含的 Referrer 信息太大了。
权限:storage
- Chrome 描述文字:无描述
- Firefox 描述文字:无描述
- 实际用途: 该权限赋予扩展保存信息的能力。MaoXian 使用该权限去保存:配置信息(包含设置页面和历史页面),裁剪记录(也就是历史页面显示的信息),目录记录,标签记录。所有这些信息都保存在你的本地,注: 该权限可以允许你保存的信息通过浏览器提供商的帐号体系(Firefox帐号或谷歌帐号),进行跨设备同步。在 MaoXian 中,我们没有启用该功能,将来也不会启用。
权限:unlimitedStorage
- Chrome 描述文字:未知
- Firefox 描述文字:未知
- 实际用途: 该权限赋予扩展可以更多信息的能力。由于 MaoXian 会存储裁剪记录(也就是历史页面显示的信息),而浏览器默认有个存储限制,而且这个限制比较小,大概只能存储几千条记录。为了能保存更多的记录,MaoXian 使用到了该权限。
权限:tabs
- Chrome 描述文字: 无描述
- Firefox 描述文字:访问浏览器的标签页
- 实际用途:MaoXian 使用该权限,主要是要获取「标签页」的 ID,扩展里各个组件间的通讯用到这个ID。并且还使用该权限去打开一个网页(通过创建「标签页」的方式打开),这些网页为:扩展本身的网页(如:设置页面,历史页面等)以及外部网页(如:项目文档)
权限:downloads 和 downloads.open
- Chrome 描述文字: 管理你的下载,并打开已下载的文件
- Firefox 描述文字:下载文件,读取和更改你的下载历史,打开下载到你电脑的文件
- 实际用途:MaoXian 使用
downloads
权限去保存裁剪下来的文件,并且从你的下载记录里,删除掉除主文件外的下载历史(MaoXian 一次性会下载许多文件,如果都放到下载历史里,会把下载历史搞得很乱)。当文件下载完成后,MaoXian 使用downloads.open
权限,去打开下载下来的主文件。
权限:nativeMessaging
- Chrome 描述文字: 与对应的本地程序通讯
- Firefox 描述文字:与 Firefox 之外的程序,交换信息
- 实际用途: MaoXian 使用该权限,与 「本地程序」 进行通讯。你需要安装 「本地程序」后,才会使用到该权限。
点击了裁剪,没有反应
请依次检查以下情况:
- 如果你刚安装完扩展,那些在安装前就已经打开的网页得刷新后才能裁剪。
- 如果不是第一种情况,也请尝试刷新网页,再试一下(有时候浏览器会抽风,导致某些资源无法正常加载)。
- 目前 MaoXian 只兼容
Chromium
和Firefox
, 其他浏览器不保证能正常工作。有的用户可能会使用基于Chromium
开发的浏览器(如:vivaldi),该类浏览器很可能可以正常工作,但我们无法作出保证。
卡在了「裁剪中…」
一种情况是网络很不好,MaoXian 卡在某个请求了,可能这个请求根本就没有可能成功。比如万恶的墙对某些请求进行干扰,导致数据一直下载不下来。
你可以到 设置页面 > 高级 页面,调整请求的「超时时长」为 15 秒,设置「重试次数」为 1。再刷新网页,重新进行裁剪,如果你等了一分钟以内,整个流程可以走下去,就说明是网络的问题了。那么没别的较好的办法,你只能去行正义之事了(搭梯子科学上网)。
目前还发现裁剪 wikipedia 网页时候,当网页上有很多个用图片表示的公式时,MaoXian 的裁剪过程很慢,也会呈现出卡住了这种状态。这种就只能等了。
卡在了「保存中…」
情况一: 网络环境不好
MaoXian 在保存图片的时候,如果遇到网络环境太差,一个图片下了好久都没有下载下来,会发生请求超时的情况,MaoXian 会进行重试,而导致整个保存过程变得很长,保存进度长期没有更新,就会感觉到卡住了。
如果你被墙干扰了,那么没别的较好的办法,你只能去行正义之事了(搭梯子科学上网)。如果你的网络环境太差与墙无关,只是速度不太快, 你可以到 设置页面 > 高级 页面,把「请求时长」设置为更大的值,以减少超时重置的情况,然后在裁剪网页的时候,不要着急,起来喝杯茶水。
情况二: 与其他扩展发生冲突了
请尝试暂时停用其他有下载功能的扩展(比如 chrono), 如果你无法确定哪些扩展是有下载功能的,那么可暂时只启用 MaoXian 并停用其他扩展,再次尝试下,以判断是否是冲突的情况。
发现有的朋友在其他浏览器上使用本扩展(比如: vivaldi), 有些浏览器会开发自己的下载管理功能,也会与 MaoXian 产生冲突
我们开发了一个本地程序来解决这个问题。
详情见: Native App
改变默认的下载路径
如果你采用「本地程序」的方式保存信息的话,直接修改配置文件,再重启一下浏览器就可以了。
如果你采用的是 「浏览器下载功能」来保存信息的话,由于安全问题,浏览器扩展无法修改浏览器的下载路径。但是你可以通过创建软链接(符号链接),来达到你的目地。方法如下:
Linux/Mac
假设:
- /home/jack/Downloads [是你的下载路径]
- /home/jack/Dropbox/clips [是你的目标路径]
运行命令:
ln -s /home/jack/Dropbox/clips /home/jack/Downloads/mx-wc
Windows
假设:
- C:\Users\jack\Downloads [是你的下载路径]
- C:\Users\jack\OneDrive\clips [是你的目标路径]
把下面的命令保存成 mklink.bat 文件,再右击该文件,以管理员方式运行。
命令:
mklink /D C:\Users\jack\Downloads\mx-wc C:\Users\jack\OneDrive\clips
我不想保存元信息文件
元信息文件是 MaoXian 对裁剪下来的文件的一个识别入口,是许多功能的依赖文件(如:裁剪历史,重置历史等..),如非特别需要,还是建议保存此类文件。
警告:当你取消了元信息文件的保存后,表示你期望通过其他软件来查看和管理你裁剪下来的文件。那些依赖元信息文件的功能将无法识别你裁剪下来的文件(如:裁剪历史,重置历史等..)。
修改方式如下:
进入扩展的 设置页面 > 重置与备份 ,确保 ”设置页面的配置信息“ 这一项有勾选后,点击 ”备份设置到文件“ 后得到一个 JSON 文件。使用文本编辑器打开它,使用 saveInfoFile
这个关键字查找,把查找到那一行冒号后面的值修改掉(true
为保存,false
为不保存)。修改完成后,再点击 ”从文件中恢复“ ,选择刚才导出的文件,导入成功后,修改即生效。
无法打开以前裁剪的内容
有的朋友可能发现,我刚裁剪下来的文件可以打开,可过几天就打不开了。
这个是因为扩展在无法访问你本地网址的时候,会尝试通过下载历史打开文件,当浏览器的下载历史被清空(可能是你主动清空的,也可能是浏览器重启后清空的)时,扩展找不到办法打开你的文件了。
可以通过允许扩展访问本地网址, 来避免这个问题。
允许访问本地网址
浏览器默认不允许扩展访问本地网址,这会导致本扩展无法直接打开裁剪下来的文件,不能让用户直接点击裁剪历史里面的链接就能查看。
我们建议你允许本扩展访问本地网址,这样你在裁剪历史页面就能更方便地查看裁剪下来的内容,使用起来会方便许多。
本节介绍了如何让浏览器允许 MaoXian 访问本地网址(file://打头的网址)
1. 获取 “扩展标识”
从 MaoXian 的设置页面,在“本地网址” 一节中找到扩展标识
信息。
不同的浏览器拿到的 扩展标识
不同,如下:
- Firefox => moz-extension://612ab18c-c29e-4211-bd50-3f208d227db7
- Chrome => chrome-extension://612ab18c-c29e-4211-bd50-3f208d227db7
2. 更改浏览器设置
这一步,不同的浏览器设置方式不一样。
Chrome/Chromium
以上面的扩展标识为例子,只要在地址栏输入chrome://extensions/?id=612ab18c-c29e-4211-bd50-3f208d227db7
, 回车。
找到 允许访问本地文件/网址
这一选项, 启用它就可以了。
Firefox
FireFox 默认没有提供一个页面可以设置这个选项,但可以通过修改浏览器的配置项,来达到目地。
具体方法如下:
I: 在地址栏输入 about:config
并回车, 进入配置项页面 (可能会有一个警告页面,直接点击按钮进入就好了)。
II: 配置以下三项
条目名称 | 值 | 提醒 |
---|---|---|
capability.policy.policynames | localfilelinks | - |
capability.policy.localfilelinks.sites | moz-extension://612ab18c-c29e-4211-bd50-3f208d227db7 | 这个值,你应该使用自己拿到的 扩展标识 , 如果你允许多个扩展的话,这里用空格隔开 |
capability.policy.localfilelinks.checkloaduri.enabled | allAccess | - |
这样操作:
复制条目名称,粘帖到搜索栏进行搜索, 如果搜索到,就双击修改它的值就行了。
如果没有搜索到,就鼠标右键 > 新建 > 字符串(String), 把条目名称
和值
依次粘帖进去即可。
3. 更改本扩展中的设置
回到 MaoXian 的设置页面,把“本地网址” 一节中的复选框打上勾。
浏览器弹出提示框提示:脚本无反应,询问是否中止
目前在一些大的网页(网页上可能有成千上万个元素),会偶尔发生此种情况。若遇到此种情况,请选择「继续等待」就行了(可能需要多确认几次)。
能把网页裁剪成单个文件?比如:裁剪成 mhtml、zip 或者 存成图片
MaoXian 无法把网页裁剪成单个文件,也不打算支持该功能。
MaoXian 支持的两种格式 HTML 和 Markdown,都是简单的文本文件。文本文件格式简单,没有特殊的编码,这使其容易修改,且可搜索性强。这是那些特殊编码的单个文件所无法比拟的,比如图片,你要搜索其内容中的文字,几乎不可能。zip 也是如此,查看不方便,搜索也是极难。对于 mhtml 来说,并非所有浏览器都支持这种格式。再者,文本文件的简单性使你可以很容易地对其进行解析,转换。比如导入到其他软件中,或者把其转换成更复杂的格式,比如把你裁剪下来的所有网页转换成电子书(epub,pdf 等)。种种的灵活性,使其非常适合作为一种独立于软件的存储格式。
当然,你很可能还是偏好于单文件格式,那么可以尝试下这些优秀的浏览器扩展,它们是: webscrapbook ,savepageWe, singleFile。
反馈新问题或建议
如果上诉常见问题的解决方案都无法解决你的问题,把你遇到的问题反映到项目issue里,开发人员会进行跟进。
反馈 Bug 注意事项
在描述你遇到的问题时候,请尽可能详细地提供信息。我们期望你能提供以下信息,以便开发者追踪问题。
- 当前网页的网址(如果你遇到的是裁剪过程中的 bug)。
- 你的环境信息: 系统信息,浏览器信息,MaoXian 版本,「本地程序」版本(如果你有安装的话)
- 你的配置信息(可以在 设置 > 重置与备份 页面导出)
- 以及详细地描述你遇到的问题。
- 比如:这是一定会发生的? 还是偶然发生的? 是在某种特定情况下发生? 是只在这个网页发生呢?还是在所有网页上都发生?等等…
PS: 如果你没用过 github
, 并且不想注册帐号的话,可以发邮件我(i.mika【AT】tutanota.com]。我可以帮你建 issue ,但此种情况下我可能无法及时看到(或回复)你的邮件。