我正在为Linux编写一个下载管理器应用程序,因此我使用chrome扩展程序为页面中的所有下载链接添加侦听器,并在下载链接时单击链接发送到本机应用程序。一切都很好,但我想在点击下载链接时阻止显示默认的Chrome保存对话框。怎么样?谢谢。
答案 0 :(得分:0)
拦截单击链接的一种非常有限的方法是使用以下内容注入内容脚本:
window.addEventListener("mousedown", interceptFunction); // intercept mouseclicks
window.addEventListener("keydown", interceptFunction); // intercept Enter key on a link
interceptFunction将检查该链接是否可能是一个可下载的文件,由url(文件扩展名)判断并取消该事件:
event.preventDefault();
event.stopPropagation();
event.stopImmediatePropagation();
然后它会将网址发送到您的后台页面,该页面会告诉您的原生应用程序开始下载。
要决定是否下载更可靠,您可以使用method: "HEAD"
执行XMLHttpRequest并分析响应标头(您必须处理CORS),例如Content-Disposition: attachment; filename=<file name.ext>
和其他