从javascript打开另存为对话框

时间:2013-05-27 09:54:51

标签: javascript jquery html

我需要实现以下场景:我有一个html页面,其中有一个按钮和一些文本框。当我单击按钮我要从文本框数据创建一个xml并将此xml发送到服务器时,服务器将此xml作为附件返回,我将有一个另存为对话框,我可以在本地保存此xml。我有以下jquery函数将xml发送到服务器:

        function GetXml() {
            var xmlData = '{"xml": "<test>test</test>"}';
            var contentType = "application/json";
            var eDoc = "";
            $.ajax({
                type: 'POST',                         
                url: 'http://localhost/xmlservice.svc/rest/GetXmlToSave',
                data: xmlData,
                contentType: contentType,
                success: function (result) {                        
                    alert(result);
                },
                error: function (result) {                      
                    alert(result);
                },
                async: false,                   
            });
            return result;
        }

但我不知道从服务器返回的xml强制从javascript强制另存为对话框。

我可以通过经典的提交按钮实现它:

<form action='http://localhost/xmlservice.svc/rest/GetXmlToSave' method="POST" runat="server" >                                
            <input type="submit"/>
        </form>

但在这种情况下,我无法在客户端创建xml。

是否可以从javascript强制另存为对话框?

感谢。

1 个答案:

答案 0 :(得分:0)

从答案和评论中我决定使用经典表单提交。我将所有表单提交到服务器,xml将在服务器端构建。 一些建议的解决方案看起来非常好,但我的目标生产环境有一些限制。例如。无法安装任何外部组件(例如闪光灯)。解决方案也必须在旧的IE 8浏览器中工作(我不能使用所有新的HTML 5功能=&gt;我不能使用jsfiddle)。而且看起来,经典的javascript并不支持另存为对话,特别是出于安全原因。