在javascript中生成一些xml,提示用户保存它

Ada*_*ter 16 javascript save

我想在JavaScript中创建一个XML文档,然后出现一个保存对话框.

  1. 如果在保存发生之前必须单击它们就可以了.
  2. 如果我*使用IE来实现这一点(我甚至根本不需要支持它),这不是*OK.但是,Windows是必需的平台(因此,如果我只能在一个浏览器中执行此操作,则Firefox或Chrome是首选的浏览器).
  3. 如果我需要一台网络服务器,那就不行了.但相反,我不想要求JavaScript只在本地文件上运行,即提升权限 - 如果可能的话.也就是说,我想在本地运行或在*static*主机上运行.但只是在当地是可以的.
  4. 可以向后弯腰来做这件事.该文件不会很大,但互联网访问可能在那里,不稳定或根本不可能 - 见(3).

到目前为止,我看到的唯一想法是将XML保存到iframe并保存该文档 - 但似乎你只能在IE中执行此操作?此外,我可以构建一个数据URI并将其放在一个链接中.我担心的是它只会在窗口中打开XML文件,而不是提示用户保存它.

我知道如果我要求JavaScript是本地的,我可以提高权限并直接保存文件(或者希望导致出现保存对话框).但是,我更喜欢一个我不需要提升权限的解决方案(即使只有Firefox 3.6解决方案).

如果这会冒犯任何人的敏感性(例如,不支持每个浏览器),我会道歉.我基本上想要编写一个离线应用程序,考虑到需求的复杂性和可用的时间,Javascript/HTML/CSS似乎是最佳候选者.但是,我有这个能够保存必须克服的数据的单一要求,然后才能选择这条开发线.

YOU*_*YOU 6

这个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
});
Run Code Online (Sandbox Code Playgroud)