当前位置:  开发笔记 > 编程语言 > 正文

仅使用Javascript(无服务器端)将textarea内容下载为文件

如何解决《仅使用Javascript(无服务器端)将textarea内容下载为文件》经验,为你挑选了4个好方法。

我被要求制作一个"下载"按钮,在文件的同一页面上下载textarea的内容,浏览器的"另存为..."对话框显示出来.复制/粘贴可以很好地完成工作,但这是一个"要求".

现在,我只是将textarea的内容发布到服务器上,然后将它们Content-disposition: attachment打回来.有没有办法用客户端Javascript来做到这一点?



1> NatureShade..:

这可能是您正在寻找的:http: //thiscouldbebetter.wordpress.com/2012/12/18/loading-editing-and-saving-a-text-file-in-html5-using-javascrip/

它使用浏览器的下载对话框,但仅支持FF和Chrome,现在可能还有更多浏览器?


编辑:

如评论所述,我将嵌入文章中的代码:

   function saveTextAsFile(textToWrite, fileNameToSaveAs)
    {
    	var textFileAsBlob = new Blob([textToWrite], {type:'text/plain'}); 
    	var downloadLink = document.createElement("a");
    	downloadLink.download = fileNameToSaveAs;
    	downloadLink.innerHTML = "Download File";
    	if (window.webkitURL != null)
    	{
    		// Chrome allows the link to be clicked
    		// without actually adding it to the DOM.
    		downloadLink.href = window.webkitURL.createObjectURL(textFileAsBlob);
    	}
    	else
    	{
    		// Firefox requires the link to be added to the DOM
    		// before it can be clicked.
    		downloadLink.href = window.URL.createObjectURL(textFileAsBlob);
    		downloadLink.onclick = destroyClickedElement;
    		downloadLink.style.display = "none";
    		document.body.appendChild(downloadLink);
    	}
    
    	downloadLink.click();
    }



2> olliej..:

您可以尝试,window.location = "data:application/octet-stream,"+text但这不提供一种机制,您可以通过它建议一个名称,并且IE对数据URI的最大长度有一个非常小的上限,这可能是一个问题.


而IE6甚至无法实现.

3> yacoob..:

通过小型嵌入式SWF文件,有一些javascript库可以做这种事情.例如这一个.



4> Cyrlop..:

我在这里找到了一个简单的解决方案:http : //www.codingforums.com/archive/index.php/t-181561.html

My text area:


Download button:

希望它会有所帮助。

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有