[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器


Posted in Javascript onFebruary 14, 2018

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

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

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

<body>
<textarea id="code"> 
<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<title></title> 
<style type="text/css"> 
a:hover span{font-weight:bold;color:#F00} 
</style> 
</head> 
<body> 
<a href="#" rel="external nofollow" >鼠标移过来看看这个网址是否变颜色:<span>3water.com</span></a> 
</body> 
</html> 
</textarea>
<button onClick="doSave('code');">另存为</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>的一些特性来实现保存功能了,代码中的文件名与扩展名都可以随意更改,如有问题你即时反馈我们

Javascript 相关文章推荐
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
Jun 29 Javascript
JavaScript模拟可展开、拖动与关闭的聊天窗口实例
May 12 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
Sep 27 Javascript
JavaScript中将数组进行合并的基本方法讲解
Mar 07 Javascript
javascript函数自动执行常用方法汇总
Mar 28 Javascript
TypeScript学习之强制类型的转换
Dec 27 Javascript
js实现文字选中分享功能
Jan 25 Javascript
如何理解jQuery中的ajaxSubmit方法
Mar 13 Javascript
Angular中实现树形结构视图实例代码
May 05 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
May 01 Javascript
vue实现下拉菜单树
Oct 22 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
Oct 26 Javascript
jQuery实现鼠标响应式透明度渐变动画效果示例
Feb 13 #jQuery
jQuery实现鼠标响应式淘宝动画效果示例
Feb 13 #jQuery
jQuery实现的鼠标响应缓冲动画效果示例
Feb 13 #jQuery
浅谈实现vue2.0响应式的基本思路
Feb 13 #Javascript
JS实现的文字间歇循环滚动效果完整示例
Feb 13 #Javascript
React中的refs的使用教程
Feb 13 #Javascript
tween.js缓动补间动画算法示例
Feb 13 #Javascript
You might like
深入php 正则表达式的学习探讨
2013/06/06 PHP
JoshChen_web格式编码UTF8-无BOM的小细节分析
2013/08/16 PHP
php编程中echo用逗号和用点号连接的区别
2016/03/26 PHP
PHP常用文件操作函数和简单实例分析
2016/06/03 PHP
php接口技术实例详解
2016/12/07 PHP
PHPExcel导出2003和2007的excel文档功能示例
2017/01/04 PHP
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
尝试在让script的type属性等于text/html
2013/01/15 Javascript
js复制网页内容并兼容各主流浏览器的代码
2013/12/17 Javascript
node.js适合游戏后台开发吗?
2014/09/03 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
跟我学习javascript的函数调用和构造函数调用
2015/11/16 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
js表单元素checked、radio被选中的几种方法(详解)
2016/08/22 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
JS扁平化输出数组的2种方法解析
2019/09/17 Javascript
JS实现进度条动态加载特效
2020/03/25 Javascript
详解element上传组件before-remove钩子问题解决
2020/04/08 Javascript
Element-UI 使用el-row 分栏布局的教程
2020/10/26 Javascript
在Python中操作列表之List.pop()方法的使用
2015/05/21 Python
numpy中实现二维数组按照某列、某行排序的方法
2018/04/04 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
2018/09/04 Python
python+pyqt5实现KFC点餐收银系统
2019/01/24 Python
如何利用python web框架做文件流下载的实现示例
2020/06/02 Python
Python实现计算图像RGB均值方式
2020/06/04 Python
python使用smtplib模块发送邮件
2020/12/17 Python
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
波兰珠宝品牌:YES
2019/08/09 全球购物
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
房屋买卖协议书
2014/04/10 职场文书
南极大冒险观后感
2015/06/05 职场文书
详解JAVA中的OPTIONAL
2021/06/14 Java/Android
使用MybatisPlus打印sql语句
2022/04/22 SQL Server