显示“另存为”对话框,并将textarea中所选文本的内容保存到客户端PC上的文件中

时间:2010-12-16 06:40:25

标签: javascript html

  

可能重复:
  Download textarea contents as a file using only Javascript (no server-side)

我有一个表单,在textarea中显示一些用户相关信息。 如果用户想要保存信息,他/她将从textarea复制文本,然后单击[保存]按钮,出现另存为对话框,允许用户选择合适的路径,然后将所选文本导出到文本文件

问题是我不知道如何显示“另存为”对话框并将所选路径写入客户端站点的文本文件(它可能使用Javascript或Jquery?)。所以我想知道是否有人可以给我一些提示?

非常感谢。

1 个答案:

答案 0 :(得分:13)

IE唯一的解决方案:

function SaveContents(element) {
    if (typeof element == "string")
        element = document.getElementById(element);
    if (element) {
        if (document.execCommand) {
            var oWin = window.open("about:blank", "_blank");
            oWin.document.write(element.value);
            oWin.document.close();
            var success = oWin.document.execCommand('SaveAs', true, element.id)
            oWin.close();
            if (!success)
                alert("Sorry, your browser does not support this feature");
        }
    }
}

必需的HTML示例:

<textarea id="myText"></textarea><br />
<button type="button" onclick="SaveContents('myText');">Save</button>

这会将给定textarea的内容保存到一个名称等于textarea的ID的文件中。

对于其他浏览器,您可以阅读:Does execCommand SaveAs work in Firefox?

测试用例和工作示例:http://jsfiddle.net/YhdSC/1/(仅限IE浏览器)

注意:https://support.microsoft.com/en-us/help/281119/internet-explorer-saves-html-content-instead-of-the-active-document

它可能不适用于txt以外的文件类型