You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome控制台生成Blob下载HTML时遇Download is disallowed错误求助

问题分析与解决方法

错误原因

你遇到的这个sandbox下载限制,不一定来自页面可见的iframe:

  • Yahoo新闻这类网站常会用隐藏的动态iframe做安全隔离或资源处理,你手动移除的只是当前DOM里的可见iframe,可能还有脚本动态生成的隐藏iframe在后台运行,这些iframe的sandbox属性没加allow-downloads,导致下载被拦截。
  • 另外,页面可能通过Content Security Policy(CSP)的sandbox指令做了全局限制,这种情况下即使没有iframe,整个页面的上下文也会被sandboxed,禁止下载操作。

可行解决方案

1. 最简单的手动复制法

直接在控制台执行以下代码,复制输出的HTML内容,粘贴到本地文本编辑器(比如记事本),保存为.html文件即可:

document.documentElement.outerHTML

2. 用新窗口绕开sandbox限制

如果一定要用代码触发下载,可以在新窗口里执行操作,因为新窗口的上下文不受原页面的sandbox限制:

// 获取页面完整HTML
const pageHtml = document.documentElement.outerHTML;
// 创建Blob并生成下载链接
const blob = new Blob([pageHtml], { type: 'text/html' });
const downloadUrl = URL.createObjectURL(blob);

// 打开新窗口并触发下载
const newWindow = window.open();
newWindow.document.write(`<a href="${downloadUrl}" download="yahoo-news.html">点击下载</a>`);
newWindow.document.close();
// 自动触发点击
newWindow.document.querySelector('a').click();

// 清理临时链接
setTimeout(() => {
  URL.revokeObjectURL(downloadUrl);
}, 1000);

3. 检查全局sandbox配置

在控制台执行以下代码,查看页面是否有全局CSP sandbox限制:

document.querySelector('meta[http-equiv="Content-Security-Policy"]')

如果返回的meta标签里包含sandbox指令且没有allow-downloads,那就是全局限制导致的,这种情况下只能用前两种方法绕开,因为你无法修改页面的CSP配置。

内容的提问来源于stack exchange,提问作者toom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 12:50:53