Javascript 如何通过单击链接下载图像而不是打开图像
我正在运行一个flask应用程序,并使用名为“Autoindex”的插件列出目录中的所有文件, 现在,当我单击图像名称时,它会打开图像。但是我想在不点击按钮的情况下下载图片 我无法修改此文件的Javascript 如何通过单击链接下载图像而不是打开图像,javascript,html,flask,Javascript,Html,Flask,我正在运行一个flask应用程序,并使用名为“Autoindex”的插件列出目录中的所有文件, 现在,当我单击图像名称时,它会打开图像。但是我想在不点击按钮的情况下下载图片 我无法修改此文件的HTML代码。所以我在想,我可以使用Javascript来执行这个任务吗 编辑 这是HTML代码: <td class="name"> <a href="/templete/images/2.jpg">2.jpg</a></td> <td class
HTML
代码。所以我在想,我可以使用Javascript来执行这个任务吗
编辑
这是HTML代码:
<td class="name">
<a href="/templete/images/2.jpg">2.jpg</a></td>
<td class="modified">
<time datetime="2019-07-15 15:42:20.989829">2019-07-15 15:42:20.989829</time>
</td>
<td class="size">
2019-07-15 15:42:20.989829
现在,我不能直接修改HTML代码。链接没有类,如何更改
<a href="/templete/images/2.jpg">2.jpg</a>
对于页面中的所有图像链接
<a href="" download="/templete/images/2.jpg">2.jpg</a>
您可以使用JS向HTML元素添加下载属性:
element.setAttribute('download','')
或者更简单:
element.download=''
因此,您可以使用href
结尾.jpg
轻松地为每个链接添加此项:
const links=document.querySelectorAll('a[href$=".jpg"]')
links.forEach(link=>link.download='')
这太容易了!
将图像放入标记内或使用标记,然后添加属性下载和使用该标记的图像URL。
以下是一个例子:
只需将target=“\u blank”
添加到您的
标签中,它就会在新标签中打开。不完全是你需要的,但至少用户有选择下载或不下载。我不想给选择,我希望用户下载。我有一个想法,我可以使用javascript广告“下载”属性。就像“可能重复的这不是一个重复的问题。
这是一个大胆的断言,字面意思是…:)您正在寻找的解决方案是添加download
属性。这个解决方案是最好的答案。必须使用JS添加属性这一事实只是一个实现细节。如果您的实际问题是“如何使用JS向元素添加属性”,那么我会将其标记为dupe of抱歉,浪费您的时间。如果我在link属性中没有任何类,我如何选择元素?我的答案已经这样做了:const links=document.queryselectoral('a[href$=.jpg]”)
选择以href
属性结尾的所有
元素。jpg出现此错误未捕获的DomeException:未能在“文档”上执行“querySelectorAll”:“a[href$=.jpg]”不是有效的选择器。
@JohnDoe您需要文档。querySelectorAll(“[href$=”.jpg]”,[href$=”.png]”)
非常感谢上帝克里斯·G