[原创]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实现表格奇数偶数行不同样式(有图为证及实现代码)
Jan 23 Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
Aug 14 Javascript
JavaScript实现多种排序算法
Feb 24 Javascript
jQuery实现图片向左向右切换效果的简单实例
May 18 Javascript
jQuery+Ajax实现用户名重名实时检测
Jun 01 jQuery
JavaScript之Map和Set_动力节点Java学院整理
Jun 29 Javascript
解决Layui数据表格的宽高问题
Sep 28 Javascript
如何使用Jquery动态生成二级选项列表
Feb 06 jQuery
用jQuery实现抽奖程序
Apr 12 jQuery
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
Apr 28 Javascript
vue 通过绑定事件获取当前行的id操作
Jul 27 Javascript
Vue单页面应用中实现Markdown渲染
Feb 14 Vue.js
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
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
php实现图片上传时添加文字和图片水印技巧
2020/04/18 PHP
thinkPHP引入类的方法详解
2016/12/08 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
2018/05/21 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
Aster vs Newbee BO5 第三场2.19
2021/03/10 DOTA
javascript 图片上一张下一张链接效果代码
2010/03/12 Javascript
jquery ajax jsonp跨域调用实例代码
2013/12/11 Javascript
以JSON形式将JS中Array对象数组传至后台的方法
2014/01/06 Javascript
jQuery中animate用法实例分析
2015/03/09 Javascript
javascript中in运算符用法分析
2015/04/28 Javascript
JavaScript Math.round() 方法
2015/12/18 Javascript
百度搜索框智能提示案例jsonp
2016/11/28 Javascript
基于JQuery实现的跑马灯效果(文字无缝向上翻动)
2016/12/02 Javascript
JavaScript无操作后屏保功能的实现方法
2017/07/04 Javascript
bootstrap table插件动态加载表头
2019/07/19 Javascript
Nodejs监控事件循环异常示例详解
2019/09/22 NodeJs
解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题
2020/07/24 Javascript
jQuery实现手风琴特效
2021/01/11 jQuery
python交互式图形编程实例(一)
2017/11/17 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
Django JWT Token RestfulAPI用户认证详解
2019/01/23 Python
python爬虫 urllib模块url编码处理详解
2019/08/20 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
如何使用Django Admin管理后台导入CSV
2020/11/06 Python
如何用Matlab和Python读取Netcdf文件
2021/02/19 Python
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
会计自我鉴定
2013/11/02 职场文书
管理科学大学生求职信
2013/11/13 职场文书
食品安全工作方案
2014/05/07 职场文书
语文课外活动总结
2014/08/27 职场文书
2015年实习生工作总结报告
2015/04/28 职场文书
人与自然观后感
2015/06/16 职场文书
职位证明模板
2015/06/23 职场文书
公司员工培训管理制度
2015/08/04 职场文书
MySQL数据库安装方法与图形化管理工具介绍
2022/05/30 MySQL