首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >另存为文本文件javascript

另存为文本文件javascript
EN

Stack Overflow用户
提问于 2011-04-05 21:21:59
回答 3查看 3K关注 0票数 0

目前,我使用的是以下代码:

代码语言:javascript
复制
<?php
header('Content-type: application/force-download');
header('Content-Disposition: attachment; filename="'.$_POST['savename'].'.bob"');
echo($_POST['savedata'])
?>

它获取表单的数据,创建一个附件,然后将其发送回来。这是没有用的,因为客户端有数据。我想将其重写为:

代码语言:javascript
复制
myForm.onsubmit = SomeSaveToFileFunction()
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-05 21:57:36

出于明显的安全原因,JavaScript不能直接在本地计算机上写入文件。然而,您也许能够使用ActiveX对象来做您需要的事情,但同样,它只能与IE一起工作。例如,你需要像NPAPI这样的等价物才能使它与Chrome兼容。

我想你应该保持你实际做的方式,如果它像你想要的那样工作。

编辑:我指的是NPAPI,而不是"API“。它允许您构建工作方式(某种程度上)与ActiveX相同的插件,并允许您执行相同的操作。

票数 0
EN

Stack Overflow用户

发布于 2014-01-06 19:37:12

Chrome现在可以做到这一点了。

html

代码语言:javascript
复制
<textarea></textarea><button>save</button>

Javascript

代码语言:javascript
复制
document.getElementsByTagName('button')[0].onclick = function(){

  var a = document.createElement('a');

  a.href = 'data:text/plain;base64,'+
    btoa(document.getElementsByTagName('textarea')[0].value);

  a.textContent = 'download';
  a.download = 'text.txt';
  a.click();

}

演示

http://jsfiddle.net/88BYB/3/

编辑最新版本的chrome不接受下载属性。(Chrome35)

票数 2
EN

Stack Overflow用户

发布于 2011-04-05 21:46:44

实际上,流量可能是无用的。你是对的。但正如Pointy所说,不幸的是,简单地使用javascript是不可能的。

如果您只是想以一种更优雅的方式实现下载(而不是页面重载),那么可以使用一个“隐藏的”iframe来加载PHP响应。也许您可以轻松地将PHP处理从POST切换到GET和...

代码语言:javascript
复制
myForm.onsubmit = function(formValueSavename, formValueSavedata) { 
// phpIframeRef addresses you hidden iframe
phpIframeRef.loaction.href = 'sendData.php?savename=' + formValueSavename + '&savedata=' + formValueSavedata;
}

您可能需要一些代码来抑制对表单的默认处理……我不知道。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5552540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档