复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题


Posted in Javascript onJune 21, 2010

复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
但IE6两行JS代码就可以,IE7以上也差不多,只不过出来一个安全提示比较恶心,用户如果看到了,一定有怀疑;
再但就是Firefox、Chrome等根本就不让你复制;
记得以前网上有这方面的代码,找了一下,发现全部不能在firefox3.5以上的版本中应该,最后终于找到了一个,代码还相当相当的复杂,不太敢用。
最后,憋的实在没有办法了,查了查资料,自已写了一个:
主要的理解的几个点:
1、Firefox这些浏览器,出于安全考虑吧,直接是不让复制的;
2、在Flash中,可以用System.setClipboard(),把内容扔到剪贴板上,然后再让FLASH工作在Firefox下;
3、在Flash播放器10.0之后呢,也是出于安全考虑吧,System.setClipboard的内容必须在FLASH里边;
4、用ExternalInterface可以和JS通信;
5、ExternalInterface在flash8中必须引用一下才可以;
默认的HTML代码:

<input type="text" id="testInput" name="testInput" value="4234324234" /> 
<div id="buttonBox"> 
<button onclick="copy('testInput')">copy</button> 
</div>

所以,设计的时候,先作第一个判断,如果是IE,就还用默认的代码,这样最没有问题,如果不是,就用一个FLASH把默认的按钮覆盖;
if (window.XMLHttpRequest){//如果不是IE时,就用FLASH的方式复制 
$('buttonBox').innerHTML = '<embed src="flashCopy.swf" width="48" 
height="23" quality="high" 
pluginspage="http://www.macromedia.com/go/getflashplayer" 
type="application/x-shockwave-flash"></embed>'; 
}

以下是所有的JS文件:
<script> 
function $(id){ 
return document.getElementById(id); 
} 
function copy(){//ie6 
var value = $('testInput').value; 
window.clipboardData.clearData(); 
window.clipboardData.setData("Text", value); 
alert('复制成功!'); 
} 
function flashCopy(){//firefox ....... 
return $('testInput').value; 
} 
function flashCopyBack(){ 
alert('复制成功!'); 
} 
if("v" != "v"){//如果不是IE时,就用FLASH的方式复制 
$('buttonBox').innerHTML = '<embed src="111.swf" width="48" height="23" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>'; 
} 
</script>

FLASH按钮的代码如下:
on (release) { 
import flash.external.ExternalInterface; 
var inputText = ExternalInterface.call('flashCopy'); 
System.setClipboard(inputText); 
ExternalInterface.call('flashCopyBack'); 
//_root.boboText.text = inputText; 
}

原理,就是避开那个安全上的限制,在点FLASH中的按钮时,通过FLASH中的代码去调页面中的JS代码,JS代码可以拿到INPUT中的值,然后再传给FLASH,这时,FLASH中就有了这些值了,然后,FLASH自已再通过System.setClipboard把这些值存到剪贴板上; 再然后,他再去调用页面中的flashCopyBack,flashCopyBack只干一件事,就是提示已复制成功!
我在Firefox、chrome、ie中都测过了,没有问题,如果谁发现有问题,请告诉我,谢谢,因为我现在已经开始用!
转载请注明出处:子鼠
Javascript 相关文章推荐
JavaScript语法着色引擎(demo及打包文件下载)
Jun 13 Javascript
jQuery实现的Email中的收件人效果(按del键删除)
Mar 20 Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
Apr 02 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
May 04 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
Feb 25 Javascript
值得分享和收藏的Bootstrap学习教程
May 12 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
Oct 15 Javascript
VUE + UEditor 单图片跨域上传功能的实现方法
Feb 08 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
Feb 24 Javascript
Vue js 的生命周期(看了就懂)(推荐)
Mar 29 Javascript
vue-cli配置flexible过程详解
Jul 04 Javascript
VUE前后端学习tab写法实例
Aug 06 Javascript
js操作时间(年-月-日 时-分-秒 星期几)
Jun 20 #Javascript
用JavaScript玩转游戏物理(一)运动学模拟与粒子系统
Jun 19 #Javascript
一段批量给页面上的控件赋值js
Jun 19 #Javascript
一个简单的js渐显(fadeIn)渐隐(fadeOut)类
Jun 19 #Javascript
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
Jun 19 #Javascript
WEB高性能开发之疯狂的HTML压缩
Jun 19 #Javascript
Html中JS脚本执行顺序简单举例说明
Jun 19 #Javascript
You might like
Yii控制器中filter过滤器用法分析
2016/07/15 PHP
php cookie工作原理与实例详解
2016/07/18 PHP
Jquery 弹出层插件实现代码
2009/10/24 Javascript
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
jquery form表单序列化为对象的示例代码
2014/03/05 Javascript
TypeScript 学习笔记之基本类型
2015/06/19 Javascript
jQuery向父辈遍历的简单方法
2016/09/18 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
AngularJS基于factory创建自定义服务的方法详解
2017/05/25 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
教你如何用node连接redis的示例代码
2018/07/12 Javascript
electron实现qq快捷登录的方法示例
2018/10/22 Javascript
Vue使用lodop实现打印小结
2019/07/06 Javascript
Python读写Redis数据库操作示例
2014/03/18 Python
python实现八大排序算法(2)
2017/09/14 Python
Python3操作SQL Server数据库(实例讲解)
2017/10/21 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
Python安装selenium包详细过程
2019/07/23 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
2020/01/04 Python
python 元组的使用方法
2020/06/09 Python
新百伦折扣店:Joe’s New Balance Outlet
2016/08/20 全球购物
Lancome兰蔻官方旗舰店:来自法国的世界知名美妆品牌
2018/06/14 全球购物
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
董事长秘书岗位职责
2013/11/29 职场文书
高一生物教学反思
2014/01/17 职场文书
幼儿园秋游活动方案
2014/01/21 职场文书
向领导表决心的话
2014/03/11 职场文书
税务干部个人整改措施思想汇报
2014/10/10 职场文书
2014年小学教师工作总结
2014/11/10 职场文书
2014年财务人员工作总结
2014/11/11 职场文书
2014年医院科室工作总结
2014/12/20 职场文书
表扬稿范文
2015/01/17 职场文书
公务员年度考核登记表个人总结
2015/02/12 职场文书
讲文明倡议书
2015/04/29 职场文书
Python中glob库实现文件名的匹配
2021/06/18 Python