我想在JavaScript中创建一个XML文档,然后出现一个保存对话框。
到目前为止,我看到的唯一想法是将XML保存到iframe并保存文档--但似乎只能在IE中做到这一点?另外,我可以构造一个数据URI并将其放在一个链接中。这里我担心的是它只会在窗口中打开XML文件,而不是提示用户保存它。
我知道,如果我要求JavaScript是本地的,我可以提高权限,直接保存文件(或者希望出现一个保存对话框)。然而,我更喜欢不需要提升权限的解决方案(即使是只有Firefox3.6的解决方案)。
如果这冒犯了任何人(例如,不支持所有浏览器),我深表歉意。我基本上想写一个离线应用程序,考虑到需求的复杂性和可用的时间,Javascript/HTML/CSS似乎是最好的候选者。然而,我有一个唯一的要求,那就是能够保存数据,在我选择这条开发路线之前,必须克服这些要求。
发布于 2010-02-20 13:07:30
这个downloadify脚本怎么样?
它是基于Flash和jQuery的,可以在对话框中提示您将文件保存到您的计算机中。
Downloadify.create('downloadify',{
filename: function(){
return document.getElementById('filename').value;
},
data: function(){
return document.getElementById('data').value;
},
onComplete: function(){
alert('Your File Has Been Saved!');
},
onCancel: function(){
alert('You have cancelled the saving of this file.');
},
onError: function(){
alert('You must put something in the File Contents or there will be nothing to save!');
},
swf: 'media/downloadify.swf',
downloadImage: 'images/download.png',
width: 100,
height: 30,
transparent: true,
append: false
});
发布于 2012-04-01 07:31:14
使用base64编码的数据URI,只有html & js才能做到这一点。您可以做的是使用像jquery-base64 by carlo这样的js库将您想要保存的数据(在本例中是一个XML数据字符串)编码到base64中。然后将编码后的字符串放入链接中,并将链接添加到DOM。
使用我提到的库(以及jquery)的示例:
<html>
<head>
<title>Example</title>
</head>
<body>
<script>
//include jquery and jquery-base64 here (or whatever library you want to use)
document.write('<a href="data:application/octet-stream;base64;charset=utf-8,' + $.base64.encode( "this is a example, which requires the jquery-base64 library to work... replace this text with your xml" ) + '">click to make save dialog</a>');
</script>
</body>
</html>
...and记得让内容类型类似于application/octet-stream
,这样浏览器就不会试图打开它。
警告:一些较旧的IE版本不支持base64,但您说这无关紧要,所以这对您来说应该很好。
发布于 2010-02-19 10:22:20
不允许Javascript写入本地计算机。您的问题类似于this one。
我建议创建一个简单的桌面应用程序。
https://stackoverflow.com/questions/2226192
复制相似问题