1

我正在开发 Safari 扩展程序,我希望在出现下载窗口之前通知它。由于没有下载事件,我想我必须处理响应标头,但我也无法访问它们。我想知道这样做的正确方法是什么?

4

1 回答 1

0

根据我修补 Safari 和 Chrome 扩展的有限经验,我相信您需要监听一个页面来触发这些事件中的一个(或两个):beforeLoadbeforeNavigate. 关于阻止内容的部分对处理进行了beforeLoad很好的描述,并在此处进行了描述。beforeNavigate

对于这些事件中的任何一个,您都需要确定相关 URL 是下载文件还是普通 Web 文件。我怀疑您可以快速检查常见的下载文件类型,例如 .zip、.mp3 等,但唯一可以确定的方法可能是执行您自己的简短 HTTP 请求并分析响应,正如您在问题中指出的那样.

警告:没有用于检测下载的 API,因为扩展几乎无法控制用户计算机上的文件。这意味着下载通常应该不在扩展的范围内,而是由平台原生应用程序负责。

于 2012-10-17T12:15:16.083 回答