例如,如果你点击链接:
数据:应用程序/八进制;base64 SGVsbG8 =
浏览器将提示您下载一个文件,该文件由超链接本身中base64所包含的数据组成。是否有办法在标记中建议一个默认名称?如果不是,是否有JavaScript解决方案?
例如,如果你点击链接:
数据:应用程序/八进制;base64 SGVsbG8 =
浏览器将提示您下载一个文件,该文件由超链接本身中base64所包含的数据组成。是否有办法在标记中建议一个默认名称?如果不是,是否有JavaScript解决方案?
当前回答
谷歌代码上有一个小的变通脚本,对我有用:
http://code.google.com/p/download-data-uri/
它添加一个包含数据的表单,提交该表单,然后再次删除该表单。很粗糙,但对我来说很管用。需要jQuery。
这个线程出现在谷歌谷歌代码页之前,我认为它可能有帮助,在这里也有链接。
其他回答
这一个适用于Firefox 43.0(旧版本未测试):
dl.js:
function download() {
var msg="Hello world!";
var blob = new File([msg], "hello.bin", {"type": "application/octet-stream"});
var a = document.createElement("a");
a.href = URL.createObjectURL(blob);
window.location.href=a;
}
dl.html
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8"/>
<title>Test</title>
<script type="text/javascript" src="dl.js"></script>
</head>
<body>
<button id="create" type="button" onclick="download();">Download</button>
</body>
</html>
如果单击按钮,它会提供一个名为hello.bin的文件供下载。诀窍是使用File而不是Blob。
参考:https://developer.mozilla.org/de/docs/Web/API/File
谷歌代码上有一个小的变通脚本,对我有用:
http://code.google.com/p/download-data-uri/
它添加一个包含数据的表单,提交该表单,然后再次删除该表单。很粗糙,但对我来说很管用。需要jQuery。
这个线程出现在谷歌谷歌代码页之前,我认为它可能有帮助,在这里也有链接。
< a href = . .下载= . .>工作左键和右键->保存链接为..,
但是<img src=..下载= . .右击>不工作->保存图像为..,建议“Download.jped”。
如果你把两者结合起来:<a href=.下载= . .> < img src = . . > < / >
它适用于左键单击,右键单击->保存链接为..,右键单击->保存图像为..
你必须写两次data-uri (href和src),所以对于大的图像文件,最好是用javascript复制uri。
使用Chrome/Edge 88进行测试
你实际上可以在Chrome和FireFox中实现。
尝试下面的url,它将下载使用的代码。
data:text/html;base64,PGEgaHJlZj0iZGF0YTp0ZXh0L2h0bWw7YmFzZTY0LFBHRWdhSEpsWmowaVVGVlVYMFJCVkVGZlZWSkpYMGhGVWtVaUlHUnZkMjVzYjJGa1BTSjBaWE4wTG1oMGJXd2lQZ284YzJOeWFYQjBQZ3BrYjJOMWJXVnVkQzV4ZFdWeWVWTmxiR1ZqZEc5eUtDZGhKeWt1WTJ4cFkyc29LVHNLUEM5elkzSnBjSFErIiBkb3dubG9hZD0idGVzdC5odG1sIj4KPHNjcmlwdD4KZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYScpLmNsaWNrKCk7Cjwvc2NyaXB0Pg==
您可以向锚元素添加一个下载属性。
示例:
<a download="abcd.cer"
href="data:application/stream;base64,MIIDhTC......">down</a>