将文本区域中的数据保存到文件

时间:2017-03-07 16:32:45

标签: javascript html

我确定这是愚蠢的,但我不是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>

0 个答案:

没有答案