`

点击按钮复制文本框内容

    博客分类:
  • css
阅读更多

点击按钮复制文本框内容预览地址:http://www.365css.cn/example/copyinput/

但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代码:

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

所以,设计的时候,先作第一个判断,如果是IE,就还用默认的代码,这样最没有问题,如果不是,就用一个FLASH把默认的按钮覆盖;

  1. if (window.XMLHttpRequest) {//如果不是IE时,就用FLASH的方式复制  
  2.     $('buttonBox').innerHTML = '<embed src="flashCopy.swf" width="48"   
  3. height="23" quality="high"    
  4. pluginspage="http://www.macromedia.com/go/getflashplayer"   
  5. type="application/x-shockwave-flash"></embed>';  

以下是所有的JS文件:

 

  1. <script>  
  2. function $(id){  
  3.     return document.getElementById(id);  
  4. }  
  5.   
  6. function copy(){//ie6  
  7.     var value = $('testInput').value;    
  8.     window.clipboardData.clearData();     
  9.     window.clipboardData.setData("Text", value);   
  10.     alert('复制成功!');   
  11. }  
  12.   
  13. function flashCopy(){//firefox .......  
  14.     return $('testInput').value;    
  15. }  
  16.   
  17. function flashCopyBack(){  
  18.     alert(' 复制成功!');  
  19. }  
  20.   
  21. if("v" != "v"){//如果不是IE时,就用FLASH的方式复制  
  22.     $('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>';  
  23. }  
  24. </script> 


FLASH按钮的代码如下:

  1. on (release) {  
  2.     import flash.external.ExternalInterface;  
  3.     var inputText = ExternalInterface.call('flashCopy');  
  4.     System.setClipboard(inputText);  
  5.     ExternalInterface.call('flashCopyBack');  
  6.     //_root.boboText.text = inputText;  

原理,就是避开那个安全上的限制,在点FLASH中的按钮时,通过FLASH中的代码去调页面中的JS代码,JS代码可以拿到INPUT中的值,然后再传 给FLASH,这时,FLASH中就有了这些值了,然后,FLASH自已再通过System.setClipboard把这些值存到剪贴板上; 再然后,他再去调用页面中的flashCopyBack,flashCopyBack只干一件事,就是提示已复制成功!

我在Firefox、chrome、ie中都测过了,没有问题,如果谁发现有问题,请告诉我,谢谢,因为我现在已经开始用!

分享到:
评论

相关推荐

    1. 编写一个 Java 程序, 在程序中建立一个窗口, 有两个文本框和一个按钮, 单击按钮, 能把左边文本框中的内容复制到右边文本框中.

    1. 编写一个 Java 程序, 在程序中建立一个窗口, 有两个文本框和一个按钮, 单击按钮, 能把左边文本框中的内容复制到右边文本框中.

    Vue实现点击按钮复制文本内容的例子

    点击复制功能主要通过 clipboard.js 来实现 在vue中使用clipboard.js 时候发现一个问题,就是如果不是input或者button 按钮的话,则复制不成功,使用步骤如下: 1、引入clipboard.js,方法如下: 第一种直接npm安装...

    JavaScript实现点击按钮复制指定区域文本(推荐)

    html5的webAPI接口可以很轻松的使用短短的几行代码就实现点击按钮复制区域文本的功能,不需要依赖flash。 代码如下: /* 创建range对象 */ const range = document.createRange(); range.selectNode(element); // ...

    一个任意复制的VB文本框

    一个任意复制的VB文本框,点击窗体上按钮可将上方文本框内的文字复制到下边的文本框中,但是实际上,你之前所对Windows剪切版所做的操作并没有被撤消。有意思吧?

    文本框根据输入内容自动调整大小

    文本框根据输入内容调整大小

    按钮JS复制文本框和表格的代码

    点击按钮,通过JS代码实现复制INPUT表单: 代码如下: [removed] function copyinput() { var input=document.getElementById(“inputid”);//input的ID值 input.select(); //选择对象 document.execCommand(“Copy...

    点击按钮后 文本框变为Select下拉列表框

    在招聘类的网站会见到不少类似效果,文本框中最开始默认的是文字 ,如果点击更改这类的按钮文本框就变成了一个可以选择的Select下拉列表框,挺有创意,以下是代码,复制即可用啦。

    用JS实现右键的复制,拈帖和剪切功能

    最近做到需要点击复制按钮就把文本框中内容,复制下来的功能。相当于右键复制功能,本人就小研究了一下,与大家分享一下~!

    java图形界面文本框及布局基础

    1为利用JTextField文本框输入姓名地址信息,利用按钮打印到JTextArea上 2为复制第一个文本框内容至第二个文本框 两个文件有助于初学者熟悉BorderLayout布局,JPanel的设置,以及按钮添加点击事件的基本操作。

    文库克星-免费复制百度内容文章

    这个小软件只要你把相应文库地址输入到文本框中,然后点击按钮就可以转到文本页面,然后已经就可以直接复制内容了!我把它命名为:文库克星,没有什么寓意,就是让文库资源可以大家多共享,然后软件供大家学习交流...

    复制文本到系统剪切板

    本程序为方便将文本复制到系统剪切板, 以便省去ctrl+c或者右键→复制的步骤 节省时间 联系作者:shaojimei@qq.com 将要复制的文本填入文本框,点击复制 按钮即可

    Reflector_8.3.0.93 破解版

    1. 断网 ...5. 将.NET Reflector中的激活请求字符串复制,粘贴到注册机第二个文本框中,复制第三个文本框的激活应答字符串,粘贴到.NET Reflector手动激活界面右边文本框中 6. 点击激活按钮,激活成功

    C#破解 .NET Reflector 9.0

    1. 断网 2.... 将.NET Reflector中的激活请求字符串复制,粘贴到注册机第二个文本框中,复制第三个文本框的激活应答字符串,粘贴到.NET Reflector手动激活界面右边文本框中 6. 点击激活按钮,激活成功

    .Net Reflector 9.0.1.374 破解版

    破解方法: ...5. 将.NET Reflector中的激活请求字符串复制,粘贴到注册机第二个文本框中,复制第三个文本框的激活应答字符串,粘贴到.NET Reflector手动激活界面右边文本框中 6. 点击激活按钮,激活成功

    Reflector V8.0.2.313 破解版

    5. 将.NET Reflector中的激活请求字符串复制,粘贴到注册机第二个文本框中,复制第三个文本框的激活应答字符串,粘贴到.NET Reflector手动激活界面右边文本框中 6. 点击激活按钮,激活成功 ^_^

    最新Reflector.8.2.0.42 破解,注册机

    5. 将.NET Reflector中的激活请求字符串复制(注意滚动条下面的,一定要复制全了), 粘贴到注册机第二个文本框中,复制第三个文本框的激活应答字符串,粘贴到.NET Reflector手动激活界面右边文本框中 6. 点击激活按钮...

    .Net Reflector Version 9.0.1.374 带注册机

    .Net Reflector Version 9.0.1.374 带注册机 激活步骤: 1、断网 2、打开激活软件 3、选择Edition版本,点击...8、复制激活软件最下边的文本框中的内容 9、粘贴到Activate .Net Reflector的右边 10、Finish激活成功

    NET Reflector 7.7.0.236 最新版 程序+注册机

    ...5. 将.NET Reflector中的激活请求字符串复制,粘贴到注册机第二个文本框中,复制第三个文本框的激活应答字符串,粘贴到.NET Reflector手动激活界面右边文本框中 6. 点击激活按钮,激活成功 ^_^

    reflector 9带注册机

    1. 断网 ...5. 将.NET Reflector中的激活请求字符串复制,粘贴到注册机第二个文本框中,复制第三个文本框的激活应答字符串,粘贴到.NET Reflector手动激活界面右边文本框中 6. 点击激活按钮,激活成功

Global site tag (gtag.js) - Google Analytics