[原创]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 相关文章推荐
js客户端快捷键管理类的较完整实现和应用
Jun 08 Javascript
JS短路原理的应用示例 精简代码的途径
Dec 13 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
Dec 27 Javascript
js取float型小数点后两位数的方法
Jan 18 Javascript
jQuery实现3D文字特效的方法
Mar 10 Javascript
jQuery获得document和window对象宽度和高度的方法
Mar 25 Javascript
jquery form表单获取内容以及绑定数据
Feb 24 Javascript
JS弹出新窗口被拦截的解决方法
Aug 09 Javascript
html5+CSS 实现禁止IOS长按复制粘贴功能
Dec 28 Javascript
vue动态绑定组件子父组件多表单验证功能的实现代码
May 14 Javascript
微信小程序canvas截取任意形状的实现代码
Jan 13 Javascript
vue中实现图片压缩 file文件的方法
May 28 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检测文件编码的函数
2014/04/21 PHP
PHP+MySQL实现消息队列的方法分析
2018/05/09 PHP
PHP实现微信小程序用户授权的工具类示例
2019/03/05 PHP
始终在屏幕中间显示Div的代码(css+js)
2011/03/10 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
js验证上传图片的方法
2015/05/12 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
AngularJS入门教程之路由机制ngRoute实例分析
2016/12/13 Javascript
xmlplus组件设计系列之图标(ICON)(1)
2017/05/05 Javascript
jquery获取链接地址和跳转详解(推荐)
2017/08/15 jQuery
js实现京东秒杀倒计时功能
2019/01/21 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
2019/10/15 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
vue-cli3 热更新配置操作
2020/09/18 Javascript
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
一个小示例告诉你Python语言的优雅之处
2014/07/04 Python
KMP算法精解及其Python版的代码示例
2016/06/01 Python
python验证码识别的示例代码
2017/09/21 Python
Python实现针对含中文字符串的截取功能示例
2017/09/22 Python
pyspark操作MongoDB的方法步骤
2019/01/04 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
如何分离django中的媒体、静态文件和网页
2019/11/12 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
如何基于Python按行合并两个txt
2020/11/03 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
2021/02/25 Python
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
html5中的一些标签学习(心得)
2016/10/18 HTML / CSS
实习生单位鉴定意见
2013/12/04 职场文书
会计求职简历自我评价
2015/03/10 职场文书
小学生读书笔记范文
2015/06/30 职场文书
详解PHP Swoole与TCP三次握手
2021/05/27 PHP
Redis中一个String类型引发的惨案
2021/07/25 Redis