问题场景,iframe 通过src 加载三方website,同时三方website 调用api 生成 web 页面,页面中会包含click 链接(打开新页面)之后会包含文件下载
参考图如下
问题
对于通过api 生成的web page ,click 打开是另外一个web page (那怕是新打开浏览器都阻止下载
解决方法
通过发现是因为iframe 开启了sandbox,如果需要支持需要在iframe 的sandbox 中配置allow download 支持,参考
参考sandbox 继承关系
说明
iframe 的sandbox 是一个很不错的安全能力,但是配置少了,或者配置的不合理造成的问题也是不少的,做好完整测试很重要
参考资料
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe
https://web.dev/sandboxed-iframes/