[原创]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与CSS复习(三)
Jun 29 Javascript
js获取php变量的实现代码
Aug 10 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
Apr 03 Javascript
javascript实现全角半角检测的方法
Jul 23 Javascript
JS仿淘宝实现的简单滑动门效果代码
Oct 14 Javascript
详解JavaScript函数
Dec 01 Javascript
Javascript blur与click冲突解决办法
Jan 09 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
Mar 23 Javascript
js replace 全局替换的操作方法
Jun 12 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
Jul 05 jQuery
Vue解析带html标签的字符串为dom的实例
Nov 13 Javascript
vue props 单项数据流实例分享
Feb 16 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
全国FM电台频率大全 - 2 天津市
2020/03/11 无线电
ThinkPHP函数详解之M方法和R方法
2015/09/10 PHP
浅谈PHP安全防护之Web攻击
2017/01/03 PHP
PHP抽象类和接口用法实例详解
2019/07/20 PHP
调试php程序的简单步骤
2019/10/04 PHP
Laravel6.18.19如何优雅的切换发件账户
2020/06/14 PHP
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
2010/11/16 Javascript
js仿百度贴吧验证码特效实例代码
2014/01/16 Javascript
javascript中checkbox使用方法实例演示
2015/11/19 Javascript
JS生成不重复的随机数组的简单实例
2016/07/10 Javascript
jQuery File Upload文件上传插件使用详解
2016/12/06 Javascript
详解Vue微信授权登录前后端分离较为优雅的解决方案
2018/06/29 Javascript
JS封装的模仿qq右下角消息弹窗功能示例
2018/08/22 Javascript
详解如何解决Vue和vue-template-compiler版本之间的问题
2018/09/17 Javascript
JavaScript this绑定过程深入详解
2018/12/07 Javascript
python数据结构之二叉树的统计与转换实例
2014/04/29 Python
解密Python中的描述符(descriptor)
2015/06/03 Python
详解用python实现简单的遗传算法
2018/01/02 Python
详解Python中如何写控制台进度条的整理
2018/03/07 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
使用Python实现文字转语音并生成wav文件的例子
2019/08/08 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
python中os包的用法
2020/06/01 Python
python爬虫要用到的库总结
2020/07/28 Python
护理自荐信范文
2013/10/05 职场文书
商务日语毕业生自荐信
2013/11/23 职场文书
劳动实践课感言
2014/02/01 职场文书
绩效管理实施方案
2014/03/19 职场文书
计算机应用专业毕业生求职信
2014/06/03 职场文书
房屋租赁协议书
2014/10/18 职场文书
慰问信模板
2015/02/14 职场文书
Java中PriorityQueue实现最小堆和最大堆的用法
2021/06/27 Java/Android
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle
Python matplotlib多个子图绘制整合
2022/04/13 Python
Win11 BitLocker 驱动器加密
2022/04/19 数码科技