可能是重复问题:
仅使用Javascript(无服务器端)下载文本区域内容作为文件
我有一个表单,其中在文本区域中显示一些与用户相关的信息。 如果用户想要保存信息,他/她将从文本区域复制文本,然后单击[保存]按钮,保存对话框将出现,允许用户选择适当的路径,然后将所选文本导出为文本文件
问题是我不知道如何在客户端上显示“另存为”对话框并将其写入所选路径作为文本文件(它可以使用Javascript或Jquery?)。所以我想知道是否有人能给我一些提示?
非常感谢您。
可能是重复问题:
仅使用Javascript(无服务器端)下载文本区域内容作为文件
我有一个表单,其中在文本区域中显示一些与用户相关的信息。 如果用户想要保存信息,他/她将从文本区域复制文本,然后单击[保存]按钮,保存对话框将出现,允许用户选择适当的路径,然后将所选文本导出为文本文件
问题是我不知道如何在客户端上显示“另存为”对话框并将其写入所选路径作为文本文件(它可以使用Javascript或Jquery?)。所以我想知道是否有人能给我一些提示?
非常感谢您。
仅适用于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>
这将把给定文本区域内的内容保存到以该文本区域ID命名的文件中。
对于其他浏览器,请参考此处: Does execCommand SaveAs work in Firefox?
测试用例和工作示例: http://jsfiddle.net/YhdSC/1/ (仅适用于IE..)
它可能不适用于除txt以外的文件类型。
execCommand
技术作为这个特定问题的解决方法。否则,如果要跨不同浏览器访问客户端的计算机,则必须引入除JavaScript之外的其他东西。但是,如果IE是您唯一的目标受众,并且他们信任您,请只引入ActiveXObject()
即可。 - bob-the-destroyer