所以我有一个'导出'应用程序,它将用户带到带有大量文本的textarea的结束页面。现在工作流程是将文本从textarea复制并粘贴到文件中。
导出的代码越来越大,我们希望鼓励用户更频繁地执行此操作,因此不再需要复制/粘贴路由。 (更不用说我的xterm-> ssh-> screen-> vi链不能很好地粘贴250K字符)
问题是这样的:我有一个textarea,其中已导出代码,我想提供一个“将此代码下载到文件”的按钮
我很确定我必须再次点击服务器,但我只想查看我的所有基础。我可以想到这样做的方式(将生成的textarea值作为浏览器的文件发送)
创建一个脚本,将所述文本作为POST接收,并使用正确的内容标题将其发回。这是不可取的,因为我们将张贴250k,这将比以下慢:
创建一个脚本,用于重新生成文本区域,并提供一个按钮,用于访问脚本并下载文件的原始页面。 这是我倾向于
以某种方式使用Javascript并且可能可以一起跳过服务器并将$('。exported')。val()发送到具有正确标题的浏览器?不知道怎么做这个atm。
所以,如果有人有一些很好的建议,也许我会忽略一些东西。谢谢!
编辑:Download textarea contents as a file using only Javascript (no server-side)
这个问题说JS路线是不可能的(很可能)
答案 0 :(得分:1)
我建议如下:让你的按钮用你的文字替换页面的整个DOM。之后,用户只需按 Ctrl + S 或⌘S即可。不完全是你想要的,但仍然是捷径。
我猜你可以使用以下(jQuery)来完成它:
$ (document.body).html ($ ('#textarea-id').html)
(未经测试)
答案 1 :(得分:1)
我会选择选项2.最简单,最快捷。其他人有点做作。
如果你选择选项2,为什么还要留下textarea?
答案 2 :(得分:0)
按照第二个选项,您可以使用关键字触发脚本,以将数据作为附件发送。
以下是它的外观示例:
if (isset($_GET['download'])) {
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment;filename="dump.data"');
echo $data;
exit;
} else {
echo '<textarea>', htmlspecialchars($data), '</textarea>';
}
答案 3 :(得分:0)
选项:
服务器中的文字:
在客户端撰写文字