[原创]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 20 Javascript
解析javascript 实用函数的使用详解
May 10 Javascript
从零学jquery之如何使用回调函数
May 16 Javascript
javascript 实现 原路返回
Jan 21 Javascript
jQuery表单验证功能实例
Aug 28 Javascript
JavaScript操作select元素和option的实例代码
Jan 29 Javascript
JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)
Jun 21 Javascript
Bootstrap基本组件学习笔记之面板(14)
Dec 08 Javascript
jQuery基于正则表达式的表单验证功能示例
Jan 21 Javascript
详解Vue项目中出现Loading chunk {n} failed问题的解决方法
Sep 14 Javascript
Vue常用的全选/反选的示例代码
Feb 19 Javascript
Express 配置HTML页面访问的实现
Nov 01 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
html静态页面调用php文件的方法
2014/11/13 PHP
PHP基于单例模式实现的mysql类
2016/01/09 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
2016/03/10 PHP
实例讲解如何在PHP的Yii框架中进行错误和异常处理
2016/03/17 PHP
PHP获取指定日期是星期几的实现方法
2016/11/30 PHP
php中时间函数date及常用的时间计算
2017/05/12 PHP
教你用AngularJS框架一行JS代码实现控件验证效果
2014/06/23 Javascript
Windows系统下Node.js的简单入门教程
2015/06/23 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
vue实现简单表格组件实例详解
2017/04/16 Javascript
详解node+express+ejs+bootstrap构建项目
2017/09/27 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
实现div滚动条默认最底部以及默认最右边的示例代码
2017/11/15 Javascript
vue cli使用绝对路径引用图片问题的解决
2017/12/06 Javascript
解决vue2中使用axios http请求出现的问题
2018/03/05 Javascript
JS实现的缓冲运动效果示例
2018/04/30 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
2019/09/04 Javascript
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
vue-video-player视频播放器使用配置详解
2020/10/23 Javascript
python通过exifread模块获得图片exif信息的方法
2015/03/16 Python
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
python实现斐波那契数列的方法示例
2017/01/12 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
2018/01/06 Python
PyTorch基本数据类型(一)
2019/05/22 Python
利用Python进行图像的加法,图像混合(附代码)
2019/07/14 Python
在Python中字符串、列表、元组、字典之间的相互转换
2019/11/15 Python
浅谈keras使用中val_acc和acc值不同步的思考
2020/06/18 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
2020/07/21 Python
Lookfantastic挪威官网:英国知名美妆购物网站
2017/07/26 全球购物
关于建议书的格式范文
2014/05/20 职场文书
数学教育专业求职信
2014/07/22 职场文书
2015年安全生产工作总结范文
2015/04/02 职场文书
会议主持人开场白台词
2015/05/28 职场文书
民间借贷纠纷起诉书
2015/08/03 职场文书
创业计划书之服装
2019/10/07 职场文书
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android