我有一个Google Apps Script网络应用,运行了一年多,给用户提供了一个下载csv文件的选项。它工作得非常好,尽管在控制台中它给出了一个关于从iFrame下载已被废弃的警告。
更新 Chrome 浏览器后,我现在尝试下载时得到以下错误。
下载被禁止。启动或实例化下载的框架被沙盒化,但 "allow-downloads "标志没有设置。请看 https:/www.chromestatus.comfeature5706745674465280 以了解更多详情。
当遵循上述链接时,它提供了以下信息。
Chrome正计划移除这一功能--即Chrome将默认阻止所有从沙盒iframe发起或实例化的下载。嵌入者可以在沙盒属性列表中添加 "allow-downloads "来选择加入。这允许内容提供商限制恶意或滥用下载。
如何在Google Apps Script环境中添加 "允许下载 "到沙箱属性?另外,有没有什么变通的办法来启用下载文件?
这里有讨论 https:/issuetracker.google.comissues157368720。 该 HtmlService.XFrameOptionsMode.ALLOWALL
应设 allow-downloads
在GAS网络应用沙盒上。我们应该关注这个问题的变化。
包括 sandbox="allow-downloads"
在你 iframe
标签,其中包含用于下载CSV文件的代码。
有一个我发现的变通方法,如果你有一个下载按钮,你可以右击并在新的标签页中打开。 你必须重命名文件,但至少你可以得到它,直到有一个修复。
除了要求用户右击下载东西,有没有一种变通的方法,让网站实现点击就能触发下载的按钮?
我一定是看了实现的功能有什么遗漏,但似乎没有规定网站不使用iframe,只用锚标签来触发下载。
现在推荐的触发下载的方式是什么?我相信我在这里没有理解什么,因为肯定没有人在他们正常的头脑中会梦想着在生产中推动接受一个改变,禁止实现一个按钮来下载东西的非常常见的使用情况。
所以,我在这里肯定是错过了什么,而且是很厚道的。在新版本的Chromium中,我如何才能让这样的东西发挥作用?
<a download="my-download.pdf" target="_blank" href="my-download.pdf">Click here to download</a>