我确定这是愚蠢的,但我不是JS家伙。我只是用简单的形式帮助别人。
我有一个文本区域,根据用户的输入编写一些自定义XML数据。它显示在只读文本区域,以便他们可以看到他们正在创建的内容,但我还有一个按钮,可以将其下载到正确的文件名,以便他们可以将其上传到我们支持的另一个系统。
我使用了代码here并根据自己的情况进行了修改。
在Chrome中完美运行但在Firefox(或IE浏览器中)根本没有任何事情发生,但我并不特别关心那个问题。 FF中的控制台/日志中没有任何内容。
这是js
function saveTextAsFile()
{
var textToWrite = document.getElementById("XMLTextArea").value;
var textFileAsBlob = new Blob([textToWrite], {type:'text/plain'});
var fileNameToSaveAs = "MyFile.xml";
var downloadLink = document.createElement("a");
downloadLink.download = fileNameToSaveAs;
downloadLink.innerHTML = "Download File";
if (window.URL != null)
{
// Chrome allows the link to be clicked
// without actually adding it to the DOM.
downloadLink.href = window.URL.createObjectURL(textFileAsBlob);
}
else
{
// Firefox requires the link to be added to the DOM
// before it can be clicked.
downloadLink.href = window.URL.createObjectURL(textFileAsBlob);
downloadLink.onclick = destroyClickedElement;
downloadLink.style.display = "none";
document.body.appendChild(downloadLink);
}
downloadLink.click();
}
function destroyClickedElement(event)
{
document.body.removeChild(event.target);
}
相关HTML
<textarea readonly id= 'XMLTextArea' cols='100' rows='40' > BLAH </textarea>
<button onclick="saveTextAsFile()">Save XML File</button>