【发布时间】:2018-09-03 14:42:40
【问题描述】:
Chrome 65 移除了对download 属性的支持在具有跨域hrefs 的锚元素上:
阻止跨域
为了避免本质上是用户介导的跨域信息泄漏,Blink 现在将忽略具有跨域属性的锚元素上存在的下载属性。请注意,这适用于
HTMLAnchorElement.download以及元素本身。
这打破了serverless downloads(对于跨域资源)。 它还破坏了 Reddit Enhancement Suite 的保存图像按钮 ( RES v5.12.0 fixed this 使用 chrome.downloads API(该扩展程序现在请求您允许管理下载)强>).res-media-controls-download)
有什么解决方法吗?
更多细节在Web spec,谢谢@jbmilgrom
【问题讨论】:
-
“这会破坏无服务器下载” - 只有跨域下载,它不会“破坏”它们,它会故意禁用它们。 (好吧,我猜安全带也会“破坏”你穿过挡风玻璃的气流,如果你喜欢的话......这点故意仍然存在,因此要求“解决方法”恕我直言是相当无稽之谈。)
-
我的意思是任何不破坏网络的方法。如果我从另一个来源加载该资源并且我正在查看它,为什么要禁止我下载它?
-
我完全理解,这就是为什么我没有提交请求更改的错误,而是要求解决方法。在我看来,热链接应该通过其他足够的方式来解决。
-
我的意思是,即使目前有一种变通方法(不是说没有),那也只意味着他们对这项措施的实施仍然缺乏,他们很可能会修改它在这方面尽快......我怀疑从一开始就进入那个猫捉老鼠的游戏是否值得。我想如果你使用浏览器扩展而不是仅仅将用户脚本插入到网站上下文中,那么应该有可能从那里触发浏览器的实际的、本机的“安全...”功能。
-
“这与您的个人小用例无关......它是关于防止网站“热链接”文件以从第三方来源下载文件,“但浏览器仍然显示那些图像,将它们下载到工作内存中。那和保存图像到底有什么区别?右键单击->将链接另存为呢?打开开发者控制台并从开发者工具的源选项卡中保存图像怎么样?你那点居高临下的回答对任何人都没有帮助,何必回答呢?
标签: javascript google-chrome frontend tampermonkey