[原创]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 相关文章推荐
不错的asp中显示新闻的功能
Oct 13 Javascript
JavaScript判断两种格式的输入日期的正确性的代码
Mar 25 Javascript
CLASS_CONFUSION JS混淆 全源码
Dec 12 Javascript
ppk谈JavaScript style属性
Oct 10 Javascript
jQuery 1.4 15个你应该知道的新特性(译)
Jan 24 Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
Aug 01 Javascript
探讨Vue.js的组件和模板
Oct 27 Javascript
vue搜索和vue模糊搜索代码实例
May 07 Javascript
5分钟快速看懂ES6中的反射与代理
Dec 19 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
Apr 08 Javascript
JS如何实现基于websocket的多端桥接平台
May 14 Javascript
JavaScript实现班级抽签小程序
May 19 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
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
php禁用函数设置及查看方法详解
2016/07/25 PHP
php微信开发之谷歌测距
2018/06/14 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
jQuery EasyUI 中文API Button使用实例
2010/04/14 Javascript
js 文件引入实现代码
2010/04/23 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
2013/07/10 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
2014/02/23 Javascript
jQuery中:selected选择器用法实例
2015/01/04 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
详解nodeJS之路径PATH模块
2017/05/31 NodeJs
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
Vue实现移动端页面切换效果【推荐】
2018/11/13 Javascript
vsCode安装使用教程和插件安装方法
2020/08/24 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
ES6知识点整理之模块化的应用详解
2019/04/15 Javascript
vue的keep-alive中使用EventBus的方法
2019/04/23 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
jQuery Ajax async=&gt;false异步改为同步时,解决导致浏览器假死的问题
2019/07/22 jQuery
react native 仿微信聊天室实例代码
2019/09/17 Javascript
[46:20]TFT vs Secret Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
Python利用ansible分发处理任务
2015/08/04 Python
django使用LDAP验证的方法示例
2018/12/10 Python
Python Pandas实现数据分组求平均值并填充nan的示例
2019/07/04 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
Pycharm+Python+PyQt5使用详解
2019/09/25 Python
使用python实现回文数的四种方法小结
2019/11/24 Python
详解HTML5中div和section以及article的区别
2015/07/14 HTML / CSS
Java软件工程师综合面试题笔试题
2013/09/08 面试题
女大学生毕业找工作的自我评价
2013/10/03 职场文书
节水标语大全
2014/06/11 职场文书
2014年底工作总结
2014/12/15 职场文书