JS实现保存文本框内容为本地文件兼容IE、Chrome、Firefox

作者:小圆点时间:2026-10-22 12:37:50浏览:405

本文介绍利用JavaScript实现将页面文本框内容保存为本地指定扩展名文件的方法。针对IE浏览器使用execCommand命令,现代浏览器如Chrome和Firefox则通过动态创建a标签触发下载。代码包含HTML结构与JS逻辑,确保跨浏览器兼容并支持自定义文件名与编码。

JS保存文本框内容功能概述

许多网站已实现利用JavaScript保存页面中文本框内容至本地,并指定文件扩展名与编码类型的功能,这在代码教程及JS特效站中尤为常见。那么,具体如何利用JS实现这一功能呢?下文提供了具体的实现代码。

首先,我们需要建立一个HTML文件,具体代码结构如下所示。

HTML页面结构实现


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>

<body>
<textarea id="code"> 
&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="#" rel="external nofollow" &gt;鼠标移过来看看这个网址是否变颜色:&lt;span&gt;www.jb51.net&lt;/span&gt;&lt;/a&gt; 
&lt;/body&gt; 
&lt;/html&gt; 
</textarea>
<button onClick="doSave('code');">另存为</button>

页面中需包含一个textarea文本框和一个button按钮。当点击按钮时,程序会将文本框中的内容另存为名为code.html的文件。

以下是实现该功能的具体JavaScript代码。

JavaScript核心代码解析


<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>的特性来实现保存。代码中的文件名与扩展名均可随意更改,如遇到问题请及时反馈。

作者最新文章