javascript - 使用 Javascript 强制从 src 下载图像
问题描述
我有一个image
包含image_wrap
类的父 div 的标签。现在我想使用 javascript 下载这张图片。我有一些解决方案来下载这张图片,但是这段代码对我不起作用。任何人都可以帮助我吗?
这是我的代码:
var img_wrap = $('.image_wrap'),
src = img_wrap.find('img').attr('src'),
anchor = '<a href="' + src + '" download></a>',
downloadable_tag = img_wrap.append(anchor);
downloadable_tag.click()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="image_wrap">
<img height="100px" width="200px" src="https://s3.envato.com/files/248564292/01_eduma.__large_preview.__large_preview.jpg" />
</div>
解决方案
您的代码中有一些问题。
首先,您将错误的元素附加到img_wrap
元素。您应该附加anchor
元素而不是downloadable_tag
.
然后,.click()
应该在 dom 对象上使用,而不是在 Jquery 对象上使用。所以我认为你也应该修复这条线。
最后,该download
属性将仅显示同一域中的文件的下载窗口。出于安全目的,它不适用于跨源请求。
因此,通过所有提到的修复,您的代码应该是这样的:
<div class="image_wrap">
<img height="100px" width="200px" src="01_eduma.__large_preview.__large_preview.jpg" />
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
var img_wrap = $('.image_wrap'),
src = img_wrap.find('img').attr('src'),
anchor = $('<a href="' + src + '" download>hello</a>'),
downloadable_tag = img_wrap.append(anchor);
anchor[0].click()
请注意,我使用了图像的本地路径。这是一个 plunker 演示。
http://plnkr.co/edit/eK1yJTYPUzF5p4DVTRem?p=preview
希望对您有所帮助:) 如果您有任何疑问,请随时询问!
推荐阅读
- containers - Microsoft 认知服务语音容器 - API 密钥
- python - pycrypto用公钥加密私钥然后解密会导致垃圾
- swift - 注册 Gigya Swift SDK 代码验证电子邮件未发送
- python - 在 Python 中读取非结构化文本文件以使其结构化
- c# - 如何在 C# 中获取屏幕尺寸(xamarin 跨平台应用程序)
- reactjs - 全屏时我的桌子在移动。有人知道为什么吗?
- c# - 图片不适合picturebox c#
- javascript - ng build - 来自 Terser "f" 的 scripts.XX.js 中的错误被重新声明
- java - Spring RestTemplate:多部分/表单数据禁止获取 403,但使用 curl
- java - 如何迭代多边形的顶点并将两个顶点相互比较?