[原创]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 相关文章推荐
使用CSS和jQuery模拟select并附提交后取得数据的代码
Oct 18 Javascript
从零学JS之你需要了解的几本书
May 19 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
Mar 26 Javascript
javascript中对Date类型的常用操作小结
May 19 Javascript
探讨跨域请求资源的几种方式(总结)
Dec 02 Javascript
求js数组的最大值和最小值的四种方法
Mar 03 Javascript
基于Vue2.0的分页组件
Mar 16 Javascript
面试常见的js算法题
Mar 23 Javascript
jQuery异步提交表单实例
May 30 jQuery
新手快速上手webpack4打包工具的使用详解
Jan 28 Javascript
vue+elementUI组件table实现前端分页功能
Nov 15 Javascript
JavaScript中的this原理及6种常见使用场景详解
Feb 14 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中的extract的作用分析
2008/04/09 PHP
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
2015/08/18 PHP
PHP支付系统设计与典型案例分享
2016/08/02 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
2019/05/23 PHP
实现变速回到顶部的JavaScript代码
2011/05/09 Javascript
纯js简单日历实现代码
2013/10/05 Javascript
javascript刷新父页面的各种方法汇总
2014/09/03 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
2015/05/06 Javascript
JavaScript中使用自然对数ln的方法
2015/06/14 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
微信小程序wx:for循环的实例详解
2018/10/07 Javascript
深入解析koa之中间件流程控制
2019/06/17 Javascript
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
JSON stringify方法原理及实例解析
2020/10/23 Javascript
详解ES6实现类的私有变量的几种写法
2021/02/10 Javascript
[00:31]2016完美“圣”典风云人物:国士无双宣传片
2016/12/04 DOTA
简单的python后台管理程序
2017/04/13 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
Python常用模块函数代码汇总解析
2020/08/31 Python
Python模拟键盘输入自动登录TGP
2020/11/27 Python
python二维图制作的实例代码
2020/12/03 Python
详解CSS3新增的背景属性
2019/12/25 HTML / CSS
BONIA官方网站:国际奢侈品牌和皮革专家
2016/11/27 全球购物
UGG美国官网:购买UGG雪地靴、拖鞋和鞋子
2017/12/31 全球购物
美国林业供应商:Forestry Suppliers
2019/05/01 全球购物
公司业务员岗位职责
2014/03/18 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
端午节活动总结报告
2015/02/11 职场文书
毕业生入职感言
2015/07/31 职场文书
资产移交协议书
2016/03/24 职场文书
2016年学校禁毒宣传活动工作总结
2016/04/05 职场文书
同学联谊会邀请函
2019/06/24 职场文书
MySQL命令行操作时的编码问题详解
2021/04/14 MySQL
MySQL数据库 安全管理
2022/05/06 MySQL