Javascript复制信息到剪贴板[支持IE和火狐]
来源:程序员人生 发布时间:2013-11-30 06:54:10 阅读次数:2868次
今天找了很久的代码,换了一个又一个,都不行,明明很多人说可行的,为什么到我这里就不行了呢。最后还是一个英文博客文章找到了一些说法。因为我不懂flash,最终的做法还没有,但是可以提供一些思路给同样迷惑的同学们。
复制到剪贴板在ie里面实现很简单很简单,仅需要用到函数window.clipboardData.setData("Text",varstring);
网:http://www.wfuyu.com/
问题是如何在firefox下实现。目前网上有两种方法。
第一种,比较少见,利用firefox的特性,相关文章参考https://developer.mozilla.org/en/Using_the_Clipboard。用这种方法一般需要用户修改firefox的默认设置,非常麻烦。
第二种,利用flash,在Javaeye和Discuz!中都是用这种方法,据说05年就出现了。这种方法的关键是利用flash的复制功能
<embed src="_clipboard.swf" FlashVars="clipboard='+encodeURIComponent(s)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>
这里需要用到一个clipboard.swf文件,网上有很多现成的,可直接下载。
这就是我找到的两种方法,对比一下,第二种肯定是首选,而且应用也很广,可惜的是,我在网上找到的所有代码都不可用了。
原因在这篇文章的评论中提到了http://www.jeffothy.com/weblog/clipboard-copy/.更新Flash 10后,禁止用户在没有点击flash的情况下复制内容,原来的方法失效了。解决方法是在按钮的上面覆盖一层透明的复制用的flash(这是dz所采用的方法),或者直接使用一个用flash做的复制按钮(这个方法Javaeye在用)。
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠