例如,如果您点击链接:
data:application/octet-stream;base64,SGVsbG8=
浏览器将提示您下载一个文件,该文件由超链接本身中作为base64保存的数据组成.有没有办法在标记中建议默认名称?如果没有,是否有JavaScript解决方案?
如何让浏览器显示"另存为对话框",以便用户可以将字符串的内容保存到系统中的文件中?
例如:
var myString = "my string with some stuff";
save_to_filesystem(myString,"myString.txt");
Run Code Online (Sandbox Code Playgroud)
结果是这样的:

我知道SO上已经存在很多与此类问题相关的问题,例如:
这个问题非常适用于iOS 8.1.3上的Safari(移动版,iPad 2+).我们有一个使用Application Cache和IndexedDB的离线AngularJS Web应用程序来存储数据.一种数据是可以相对较大的PDF文档:最大约25兆字节.我们将这些文件存储在IndexedDB中,当用户想要下载它时,我们在浏览器中使用JavaScript将该文件存储在内存中.
当用户想要保存它时,问题就出现了.Safari Mobile可能会因数据URI的大小限制或其他原因而崩溃.
this.save = function (file) {
var mediaType = "application/pdf";
var link = document.createElement("a");
var blob = new Blob([this.fromBase64ToBinary(file.content)], { type: mediaType });
var blobUrl = URL.createObjectURL(blob);
document.body.appendChild(link);
link.download = file.name;
link.href = blobUrl;
link.click();
document.body.removeChild(link);
};
Run Code Online (Sandbox Code Playgroud)
在服务中,我们有一个函数save(file),其中file包含两个属性的对象:
name:文件名;content:文件的数据,基本64编码,然后我们将其转换为二进制.该atob()功能可以是原因?当我在运行此代码的iPad上进行逐步调试时,它会在那里崩溃(即:与行对齐var byteCharacters = atob(b64Data);).
this.fromBase64ToBinary = function (base64) …Run Code Online (Sandbox Code Playgroud) 我正在制作一个应用程序,我需要将谷歌图表保存为图像.我正在使用的是tomcat,servlets和javascript.有没有办法将以下生成的图表保存为图像?(参考帖子末尾的代码).想法是用户会看到此图表,然后可以选择将其上传到他的Facebook个人资料中.我不确定这是否可以以原生格式上传到Facebook,或者需要保存为jpg.
<html>
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Year');
data.addColumn('number', 'Sales');
data.addRows(4);
data.setValue(0, 0, ''+2004);
data.setValue(0, 1, 1000);
data.setValue(1, 0, '2005');
data.setValue(1, 1, 1170);
data.setValue(2, 0, '2006');
data.setValue(2, 1, 860);
data.setValue(3, 0, '2007');
data.setValue(3, 1, 1030.5);
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, {width: 400, height: 240, title: 'Company Performance',hAxis: {title: "X", titleTextStyle: {color: "green"}}});
}
</script>
</head>
<body>
<div id="chart_div"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我想将 html 表格下载为 PNG 图像,我找到了一种使用 JQuery 将表格提取为图像的方法,但它在新选项卡中打开并且不会自动下载我必须使用右键单击然后另存为图像才能下载它。
有没有办法让它自动下载?
这是用于导出为 PNG 图像的 JQuery
$('#preview-table').tableExport({type:'png',escape:'false'});
Run Code Online (Sandbox Code Playgroud)