js实现保存文本框内容为本地文件兼容IE,chrome,火

很多网站实现了利用JS保存页面中文本框内容到本地,并另存为指定文件扩展名与编码类型的功能,特别是一些代码教程,JS特效站上更是长见。如何利用JS实现这种功能的呢,下面给出了具体的实现代码

首先建立HTML文件,具体代码如下

<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> </head> <body> <textarea> &lt;!DOCTYPE HTML&gt; &lt;html&gt; &lt;head&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"&gt; &lt;title&gt;&lt;/title&gt; &lt;style type="text/css"&gt; a:hover span{font-weight:bold;color:#F00} &lt;/style&gt; &lt;/head&gt; &lt;body&gt; &lt;a href="#" &gt;鼠标移过来看看这个网址是否变颜色:&lt;span&gt;&lt;/span&gt;&lt;/a&gt; &lt;/body&gt; &lt;/html&gt; </textarea> <button>另存为</button>

页面中包含一个 textarea文本框和一个 button按钮,点击按钮时把文本框中内容另存为 code.html

下面是实现功能的JS代码

<script language="javascript"> function doSave(obj) { obj=document.getElementById('obj'); if (isIE()){//IE浏览器保存文本框内容 var winname = window.open('', '_blank', 'top=10000'); winname.document.open('text/html', 'replace'); winname.document.writeln(obj.value); winname.document.execCommand('saveas','','code.htm'); winname.close();} else{ saveAs(obj,'code.html'); } } function saveAs(obj,filename){//chrome,火狐等现代浏览器保存文本框内容 var a=document.createElement('a'); a.setAttribute('href','data:text/html;gb2312,'+obj.value); a.setAttribute('download',filename); a.setAttribute('target','_blank'); a.style.display="none"; obj.parentNode.appendChild(a); a.click(); } function isIE()//判断浏览器类型 { if(!!window.ActiveXObject || "ActiveXObject" in window) return true; else return false; } </script>

在IE下利用了JS的 execCommand 的功能而在chrome等现代浏览器下这个功能的没有 saveas 所以我们只能通过超链接标签<a>的一些特性来实现保存功能了,代码中的文件名与扩展名都可以随意更改,如有问题你即时反馈我们

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ppywj.html