复制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 相关文章推荐
img标签中onerror用法
Aug 13 Javascript
javascript 定义新对象方法
Feb 20 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
Oct 11 Javascript
jquery 缓存问题的几个解决方法
Nov 11 Javascript
flash遮住div问题的正确解决方法
Feb 27 Javascript
JavaScript通过事件代理高亮显示表格行的方法
May 27 Javascript
JS模拟实现方法重载示例
Aug 03 Javascript
理解Angular的providers给Http添加默认headers
Jul 04 Javascript
underscore之function_动力节点Java学院整理
Jul 11 Javascript
解决iview多表头动态更改列元素发生的错误的方法
Nov 02 Javascript
jQuery实现图片随机切换、抽奖功能(实例代码)
Oct 23 jQuery
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
Jan 19 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
实用函数5
2007/11/08 PHP
php获取访问者IP地址汇总
2015/04/24 PHP
php实现的简易扫雷游戏实例
2015/07/09 PHP
PHP函数积累总结
2019/03/19 PHP
js的逻辑运算符 ||
2010/05/31 Javascript
基于jQuery的判断iPad、iPhone、Android是横屏还是竖屏的代码
2014/05/11 Javascript
js锁屏解屏通过对$.ajax进行封装实现
2014/07/31 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
2014/08/05 Javascript
整理Javascript事件响应学习笔记
2015/12/02 Javascript
javascript中sort排序实例详解
2016/07/24 Javascript
纯js实现倒计时功能
2017/01/06 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
2017/04/23 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
vue.js todolist实现代码
2017/10/29 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
Python爬取商家联系电话以及各种数据的方法
2018/11/10 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
2019/08/12 Python
Python使用re模块验证危险字符
2020/05/21 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
2021/03/03 Python
IBatis持久层技术
2016/07/18 面试题
实习自我鉴定范文
2013/10/30 职场文书
怎样写演讲稿
2014/01/04 职场文书
建筑经济管理专业求职信分享
2014/01/06 职场文书
软件项目开发计划书
2014/05/01 职场文书
初中升旗仪式演讲稿
2014/05/08 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
上课迟到检讨书范文
2015/05/06 职场文书
谢师宴家长致辞
2015/07/27 职场文书
《妈妈别哭,有我在》读后感3篇
2020/01/13 职场文书
浅谈Python数学建模之数据导入
2021/06/23 Python
mysql5.6主从搭建以及不同步问题详解
2021/12/04 MySQL
python游戏开发Pygame框架
2022/04/22 Python