You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

beforeunload事件和Content-Disposition=attachment的问题

为了解决这个问题,我们需要使用window对象的beforeunload事件,当页面将要被卸载时,触发这个事件,然后使用Content-Disposition = attachment头,将在页面上的内容作为附件下载而不是直接打开。以下是一个示例代码:

HTML代码:

<button onclick="download()">下载</button> <p>这是将要被下载的内容。</p>

JavaScript代码:

function download() { window.addEventListener('beforeunload', function(e) { e.preventDefault(); e.returnValue = ''; });

var data = document.querySelector('p').innerText;
var blob = new Blob([data], { type: 'text/plain' });
var url = URL.createObjectURL(blob);

var link = document.createElement('a');
link.href = url;
link.download = 'download.txt';
link.click();

window.removeEventListener('beforeunload');
setTimeout(function() {
    URL.revokeObjectURL(url);
}, 1000);

}

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

beforeunload事件和Content-Disposition=attachment的问题 -优选内容

管理对象元数据(Python SDK)
通过content_disposition设置HTTP标准属性 content_disposition='attachment; filename=123.txt', 通过content_type设置对象类型 ... request id 可定位具体问题,强烈建议日志中保存 print('error with request id: {}'.format(e.request_id)) print('error with message: {}'.format(e.message)) print('error with http code: {}'....
管理网站配置(Python SDK)
Response Header 中会自动加上 Content-Disposition:attachment,即从浏览器访问网页类型文件时,将不会直接预览网站,而会将网站的内容下载到本地。 示例代码以下代码用于设置重定向所有的请求到另外一个站点。 py... request id 可定位具体问题,强烈建议日志中保存 print('error with request id: {}'.format(e.request_id)) print('error with message: {}'.format(e.message)) print('error with http code: {}'....
管理静态网站(Node.js SDK)
Response Header中会自动加上 Content-Disposition:attachment,即从浏览器访问网页类型文件时,将不会直接预览网站,而会将网站的内容下载到本地。 示例代码以下代码用于设置重定向所有的请求到另外一个站点。 JavaScript // 导入 SDK, 当 TOS Node.JS SDK 版本小于 2.5.2 请把下方 TosClient 改成 TOS 导入import { TosClient, TosClientError, TosServerError } from '@volcengine/tos-sdk';// 创建客户端const client = new T...
管理静态网站(Java SDK)
Response Header中会自动加上 Content-Disposition:attachment,即从浏览器访问网页类型文件时,将不会直接预览网站,而会将网站的内容下载到本地。 示例代码以下代码展示两种场景,如何设置重定向所有的请求到另外一个站点,以及如何设置特定的重定向规则来重定向特定的请求。 java import com.volcengine.tos.TOSV2;import com.volcengine.tos.TOSV2ClientBuilder;import com.volcengine.tos.TosClientException;import com.volce...

beforeunload事件和Content-Disposition=attachment的问题 -相关内容

管理网站配置(C++ SDK)

Response Header中会自动加上 Content-Disposition:attachment,即从浏览器访问网页类型文件时,将不会直接预览网站,而会将网站的内容下载到本地。 示例代码以下代码用于设置桶 examplebucket 的网站配置规则。 cpp include "TosClientV2.h"using namespace VolcengineTos;int main(void){ // 初始化 TOS 账号信息 // Your Region 填写 Bucket 所在 Region std::string region = "Your Region"; std::string accessK...

管理静态网站(Go SDK)

Response Header中会自动加上 Content-Disposition:attachment,即从浏览器访问网页类型文件时,将不会直接预览网站,而会将网站的内容下载到本地。 示例代码以下代码用于设置重定向所有的请求到另外一个站点。 go package mainimport ( "context" "fmt" "github.com/volcengine/ve-tos-golang-sdk/v2/tos")func checkErr(err error) { if err != nil { if serverErr, ok := err.(*tos.TosServerError); ok { ...

管理对象元数据(Android SDK)

也可以自定义设置 options.setContentType("application/json"); // 设置对象内容语言 options.setContentLanguage("en"); // 设置对象被下载时的名称 options.setContentDisposition("attachment;filename=download.txt"); // 设置对象的网页缓存行为 options.setCacheControl("max-ag...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

普通下载(Python SDK)

request id 可定位具体问题,强烈建议日志中保存 print('error with request id: {}'.format(e.request_id)) print('error with message: {}'.format(e.message)) print('error with http code: {}'.... response_content_disposition='attachment; filename=123.txt') 迭代读取对象内容 for content in object_stream: print(content) 打印重写响应头 p...

普通下载(C++ SDK)

普通下载是指通过 getObject 方法下载单个对象(Object),支持将对象下载到内存中、下载到本地文件两种方式,同时下载对象时支持进度条、客户端限速以及重写 HTTP 响应头。 注意事项下载对象前,您必须具有 tos:GetObject 权限,具体操作,请参见权限配置指南。 对于开启多版本的桶,下载指定版本对象时,您必须具有 tos:GetObjectVersion 权限,具体操作,请参见权限配置指南。 如果应用程序会在同一时刻大量下载同一个对象,您的访问速度会...

管理对象元数据(Java SDK)

options.setContentType("text/plain"); // 设置内容被下载时的名称。 options.setContentDisposition("attachment; filename=\"DownloadFileName\""); // 设置内容被下载时网页的缓存行为。 options.setCacheControl("no-cache"); // 设置自定义 Header。 Map customMeta = new HashMap<>(); customMeta.put("userCustomKey", "user...

分片上传(Android SDK)

也可以自定义设置 options.setContentType("text/plain"); // 设置对象内容语言 options.setContentLanguage("en-US"); // 设置对象被下载时的名称 options.setContentDisposition("attachment;filename=123.txt"); // 设置对象的网页缓存行为 options.setCacheControl("no-cache, no-s...

管理文件元数据

文件元数据是一组描述文件属性的健值对。元数据分为 HTTP 标准属性和用户自定义两类。本文介绍文件元数据的说明及设置文件元数据的操作步骤。 HTTP 标准属性名称 说明 是否可修改 Content-Disposition 指定浏览器访问文件时的展示形式,是以内联形式(即网页或者页面的一部分),还是以附件的形式下载保存到本地:当该值设置为 attachment;filename="test.png",表示下载文件到本地,并以 test.png 文件名进行保存。 是 Content-E...

对象存储桶域名使用限制变更公告

TOS 会在 Response Header 中会自动添加 Content-Disposition:attachment 参数,即任意类型的文件均会直接下载到本地,而非在线预览。 不允许使用默认域名或预签名的 URL 访问后缀为 .apk 或 .ipa 类型的文件,如果直接访问,请求将会报以下错误:Bash HTTP/1.1 400 Bad Request{ "Code": "ApkDownloadForbidden", "RequestId": "c35016853c8ceec656853c8-ac11c259-1r8dDM-LB-cb-tos-front-****", "HostId": "TQHYhZZTikZoNV...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询