我正在开发 Safari 扩展程序,我希望在出现下载窗口之前通知它。由于没有下载事件,我想我必须处理响应标头,但我也无法访问它们。我想知道这样做的正确方法是什么?
问问题
172 次
1 回答
0
根据我修补 Safari 和 Chrome 扩展的有限经验,我相信您需要监听一个页面来触发这些事件中的一个(或两个):beforeLoad
和beforeNavigate
. 关于阻止内容的部分对处理进行了beforeLoad
很好的描述,并在此处进行了描述。beforeNavigate
对于这些事件中的任何一个,您都需要确定相关 URL 是下载文件还是普通 Web 文件。我怀疑您可以快速检查常见的下载文件类型,例如 .zip、.mp3 等,但唯一可以确定的方法可能是执行您自己的简短 HTTP 请求并分析响应,正如您在问题中指出的那样.
警告:没有用于检测下载的 API,因为扩展几乎无法控制用户计算机上的文件。这意味着下载通常应该不在扩展的范围内,而是由平台原生应用程序负责。
于 2012-10-17T12:15:16.083 回答