首页 > 其他分享 >为什么a标签无法下载,无法重命名?

为什么a标签无法下载,无法重命名?

时间:2024-01-10 16:12:03浏览次数:31  
标签:重命名 URL 标签 同源 无法 download 下载 属性

《1》a 标签的 href 有很大的关系, href 属性的地址必须是 同源 URL,否则,download 就会不起作用。

1. 同源 URL 会进行 下载 操作
2. 非同源 URL 会进行 导航 操作
3. 非同源的资源 仍需要进行下载,那么可以将其转换为 blob: URL 形式

《2》a标签的 download 属性是HTML5新增的属性,它可以使 a 标签的 href 属性进行下载,download 属性为下载后的 文件名,可能会通过 JavaScript 进行动态修改 或者 Content-Disposition 中指定的 download 属性优先级高于 a.download

1、同源URL (静态)

<a href="http://127.0.0.1:3000/1.jpg" download="1.jpg">下载</a>

2. 同源URL (动态)

function aTagDownload(url, filename){
  const a = document.createElement("a"); // 创建 a 标签
  a.href = url; // 下载路径
  a.download = filename;  // 下载属性,文件名
  a.style.display = "none"; // 不可见
  document.body.appendChild(a); // 挂载
  a.click(); // 触发点击事件
  document.body.removeChild(a); // 移除
} 

3. 非同源URL (Blob)

function download(path, fileName=''){
  if (!fileName) fileName = '123.jpg'
  fetch(path).then(res => 
    res.blob()
  ).then((blob) => {
    let objectUrl = URL.createObjectURL(blob); // 创建 url 对象
    aTagDownload(objectUrl,fileName); // 调用 上面 [2] 动态方式
  }).catch((err) => {
    console.log('Request Failed', err)
  })
}

 

标签:重命名,URL,标签,同源,无法,download,下载,属性
From: https://www.cnblogs.com/j-a-h/p/17956716

相关文章

  • Matlab中常用快捷键:注释、自动对齐、跳转指定行、设置标签等
    Matlab中有11个常用快捷键,可以大大提高编程效率,并且可以节省时间。 1.注释:注释是指在程序中添加注释,以便于以后更好地理解程序的含义。快捷键为Ctrl+R,点击后可以将当前行变为注释,再次点击可以取消注释。2.自动对齐:自动对齐是指将程序中的代码按照一定的格式进行排列,使得......
  • 使用Nginx部署VUE3+VITE项目时无法访问后端接口的一个情况
    在使用VUE3作为前端,ABPVNEXT6.0作为后端框架。使用Nginx部署后无法访问api,接口报错404找错思路很重要,网上找到了很多Nginx配置信息,但是都不起作用,即使更换服务器重新部署也无法生效后来才发现,ABPNEXT对于未找到对应实体的报错就是404,按照正常的程序逻辑,404应该就是notfound,这一......
  • 无法访问某ip: 端口
    可以在本地浏览器中通过访问本机IP地址和xxxx端口成功访问某服务页面,但在同一局域网中的另一台机器上无法访问,以下是一些可能的解决步骤:1检查网络连接:确保您的计算机和另一台机器都连接到同一局域网,并且网络连接正常。您可以尝试通过ping命令或其他网络工具来测试两台机器之......
  • 解决mac arm 中 goland 无法 debug 问题
    新电脑不知道装了什么,导致无法debug现象可以run,没有问题不能debug,报错信息如下单元测试报错^Cgotooltest2json:signal:interruptmain方法debug报错^Ccouldnotlaunchprocess:stubexitedwhilewaitingforconnection:signal:interrupt解决之路网上找遍......
  • explorer.exe 无法访问指定设备路径或文件。你可能没有适当的权限访问该项目。
    亲测有效。电脑用的好好的,一会儿没用,突然只能找开部分软件,打不开文件夹和开始菜单了,弹出标题说的问题。试了其它软件如微信都可以使用,除了第三方下载的软件,系统自带的都打不开,会弹出提示,打开我的电脑和文件夹也是会弹出提示。并且下方任务栏WIN开始打不开,时钟和通知都点不开,不......
  • 国外留学院校专业不喜欢,不愿意上课本科无法毕业拿学位怎么办?
    国外留学院校专业不喜欢,不愿意上课本科无法毕业拿学位怎么办?目前也还是存在很多学生在申请留学选择院校的时候并没有对自己即将要申请的院校有详细的了解。没有明确喜欢的院校或专业方向,同时对国外院校以及教学制度的不了解,只能用最快捷的方式——寻找第三方帮助自己选校。运气好,去......
  • Anaconda 修改环境默认位置,以及遇到将安全信息应用到以下对象时发生错误无法枚举容器
    默认虚拟环境会在C盘,anaconda环境默认安装在用户目录C:\Users\username.conda\envs下,想换到D盘1.首先,找到用户目录下的.condarc文件2.打开.condarc文件,添加或修改.condarc中的env_dirs设置环境路径,按顺序第⼀个路径作为默认存储路径,搜索环境按先后顺序在各⽬录中查找。直接......
  • # yyds干货盘点 # 盘点一个AI都无法解决的Python基础题目(下篇)
    大家好,我是皮皮。一、前言前几天在Python白银交流群【大侠】问了一个Pandas实战的问题,一起来看看吧。上一篇文章说到,看上去AI给的答案,似乎让【大侠】不满意,遂来白银交流群问问大佬们。这一篇文章,我们一起来看看其他大佬给的代码。二、实现过程前面的文章中,我们看到了【瑜亮老师】和......
  • MEM0701 Correctable memory error rate exceeded for . 内存可能无法正常工作。 这是
    ......
  • shell命令mac怎么批量重命名某个目录下的文件
    在Mac上批量重命名文件很简单,你可以使用“终端”应用程序或者Finder中的“批量重命名”功能。下面是两种方法:使用终端:打开终端应用程序。使用cd命令切换到目标目录,例如:cd/路径/到/你的/目标目录使用mv命令进行批量重命名,例如:forfilein*;domv"$file""新名称${file##*_}";do......