[原创]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 相关文章推荐
jQuery中slideUp()方法用法分析
Dec 24 Javascript
jQuery实现购物车计算价格功能的方法
Mar 25 Javascript
jquery实现标签上移、下移、置顶
Apr 26 Javascript
jQuery实现拖拽可编辑模块功能代码
Jan 12 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
Feb 27 Javascript
详解webpack-dev-server 设置反向代理解决跨域问题
Apr 18 Javascript
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
Oct 28 Javascript
微信小程序实现跑马灯效果
Oct 21 Javascript
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
Mar 06 jQuery
JavaScript监听触摸事件代码实例
Dec 30 Javascript
vue子组件改变父组件传递的prop值通过sync实现数据双向绑定(DEMO)
Feb 01 Javascript
js函数和this用法实例分析
Mar 13 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
数据库的日期格式转换
2006/10/09 PHP
使用php显示搜索引擎来的关键词
2014/02/13 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
2016/12/25 PHP
thinkphp分页集成实例
2017/07/24 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
2019/09/26 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
PHP Web表单生成器案例分析
2020/06/02 PHP
Prototype使用指南之array.js
2007/01/10 Javascript
Prototype 学习 工具函数学习($w,$F方法)
2009/07/12 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
javascript实现des解密加密全过程
2014/04/03 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
基于jquery插件实现拖拽删除图片功能
2020/08/27 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
使用vue-router在Vue页面之间传递数据的方法
2019/07/15 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
2019/12/07 Javascript
JS删除数组指定值常用方法详解
2020/06/04 Javascript
python中List的sort方法指南
2014/09/01 Python
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
Python调用C语言的方法【基于ctypes模块】
2018/01/22 Python
Django框架之中间件MiddleWare的实现
2019/12/30 Python
在html页面中取得session中的值的方法
2020/08/11 HTML / CSS
What's the difference between deep copy and shallow copy? (深拷贝与浅拷贝有什么区别)
2015/11/10 面试题
简短大学毕业感言
2014/01/18 职场文书
特教教师先进事迹
2014/05/21 职场文书
领导班子自我剖析材料
2014/08/16 职场文书
2014党员整改措施思想汇报
2014/10/07 职场文书
2015年党性分析材料
2014/12/19 职场文书
风雨哈佛路观后感
2015/06/03 职场文书
卡特教练观后感
2015/06/08 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
创业计划书之o2o水果店
2019/08/30 职场文书
小学三年级作文之写景
2019/11/05 职场文书