我已经无数次在这里搜索了我的项目的帮助,现在我终于创建了一个帐户。我希望得到一些澄清,我找到了一个类似问题的答案,其功能与我想要的相似。我基本上希望用户单击一个按钮并下载一个CSS文件,其中包含使用JavaScript推送到空数组的数据。
这是我发现的代码在某种程度上起作用(我在实际代码中单击时触发了该函数,但这部分是我遇到麻烦的特定区域。)
function download(filename, text) {
var pom = document.createElement('a');
pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
pom.setAttribute('download', filename);
if (document.createEvent) {
var event = document.createEvent('MouseEvents');
event.initEvent('click', true, true);
pom.dispatchEvent(event);
}
else {
pom.click();
}
}
download('responsive.css', 'Hello world!');
我发现这在Chrome中运行良好,但是当我让其他人在Firefox中测试它时,它被下载为responsive.css.txt。我做了一些研究,看看是否可以在我的代码的第3行中将“data:text / plain”更改为“data:text / css”,但我的测试人员告诉他,他仍然遇到同样的问题。此外,如果任何人都有一个解决方案,这将在IE中运行,这将是伟大的,因为现在当你点击按钮下载没有任何反应。
提前致谢!
答案 0 :(得分:0)
如果您设置要下载的类型,它应该有效:
function download(filename, text) {
var pom = document.createElement('a');
pom.setAttribute(
'href',
'data:application/download;charset=utf-8,' + encodeURIComponent(text)
);
pom.setAttribute('download', filename);
if (document.createEvent) {
var event = document.createEvent('MouseEvents');
event.initEvent('click', true, true);
pom.dispatchEvent(event);
}
else {
pom.click();
}
}
download('responsive.css', 'Hello world!');
祝你好运;)