下载由Javascript生成的动态创建的CSS文件

下载由Javascript生成的动态创建的CSS文件,javascript,css,download,data-uri,Javascript,Css,Download,Data Uri,在我的项目中,我在这里搜索了无数次寻求帮助,现在我终于创建了一个帐户。我希望得到一些澄清,我发现了一个类似的问题,其功能类似于我想要的。我基本上希望用户点击一个按钮,下载一个CSS文件,其中包含用JavaScript推送到空数组的数据 这是我发现的在某种程度上可以工作的代码(我在实际代码中有单击触发的功能,但这是我遇到问题的特定区域。) 我发现它在Chrome中运行良好,但是当我让其他人在Firefox中测试它时,它被下载为responsive.css.txt。我做了一些研究,看看是否有可能将代

在我的项目中,我在这里搜索了无数次寻求帮助,现在我终于创建了一个帐户。我希望得到一些澄清,我发现了一个类似的问题,其功能类似于我想要的。我基本上希望用户点击一个按钮,下载一个CSS文件,其中包含用JavaScript推送到空数组的数据

这是我发现的在某种程度上可以工作的代码(我在实际代码中有单击触发的功能,但这是我遇到问题的特定区域。)

我发现它在Chrome中运行良好,但是当我让其他人在Firefox中测试它时,它被下载为responsive.css.txt。我做了一些研究,看看是否有可能将代码第3行中的“data:text/plain”改为“data:text/css”,但我的测试人员告诉我,他仍然有同样的问题。此外,如果有人能在IE中找到解决方案,那就太好了,因为现在当你点击按钮下载时,什么都没有发生


提前谢谢

如果您将类型设置为“下载”,它应该可以工作:

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!');
见:


祝你好运;)

您必须将元素添加到DOM中。
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!');