home / web建站

跨浏览器实现一键复制到剪贴板的功能

  今天看本站的单日志页面,发现正文下面的“本文链接地址”没有复制按钮,这样用户如果想复制链接地址,和在地址栏上复制没啥区别,太鸡肋了!

  实在看不下去,一定要实现一键复制本文链接的功能,放狗(Google)去搜,网上“点击按钮复制信息”的代码确实不少,但大部分都只支持IE,能实现跨浏览器实现复制功能的方法不多。

  • 一种是通过一段JS代码+a标签模拟的按钮:
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    
    <script type="text/javascript">   
    function setCopy(content){    
        if(navigator.userAgent.toLowerCase().indexOf('ie') > -1) {    
            clipboardData.setData('Text',content);    
            alert ("该地址已经复制到剪贴板");    
        } else {    
            prompt("请复制网站地址:",content);    }    
    } </script>     
    <a href="http://www.3anshi.com/" onclick="setCopy(this.href);return false;"  target="_self">复制此链接网址</a>

      js判断非IE浏览器则弹出窗口,手动复制链接地址,这个不完美,弃之。

  • 还有是通过Flash做中介,因为主流浏览器都支持Flash,利用flash调用页面信息,就能实现跨浏览器复制功能了。
  •   方法一:《Zero Clipboard js+swf实现的复制功能使用》
    这种方法能实现复制文本框文字,功能很强大完美,但需要加载一个10K的js文件,对偶来说太奢侈了,被否!

      我找、找、找,终于找到现在的完美答案:只需要一个1k的flash按钮就能实现跨浏览器复制链接地址的功能,正是我需要的,测试很完美,Firefox和Chrom都通过!

      使用方法:在你想要复制的地方写入下列代码:

    1
    2
    3
    4
    5
    6
    7
    
    <embed width="62" height="24" align="center"
    flashvars="txt=http://www.3anshi.com"//要复制的信息
    src="http://www.3anshi.com/wp-content/themes/AN3/Copy.swf"//flash按钮地址,下载后替换成你自己的地址
    quality="high" wmode="transparent"
    allowscriptaccess="sameDomain"
    pluginspage="http://www.adobe.com/go/getflashplayer"
    type="application/x-shockwave-flash">

      具体效果演示见本页下方的“本文链接地址”,点击旁边的“复制”按钮试试看!
      原理和详细解释看原文:《用Flash按钮解决跨浏览器使用剪贴板的复制功能》

    8 条评论

    1. 奶牛 说:

      帅气又实用,赞 :mrgreen:

    2. 万戈 说:

      这个功能好耶,gg reader里收藏起来

    3. Ray 说:

      这个功能不错,可惜俺用不着

    4. 大智若鲁 说:

      不管你愿不愿意,这篇文章我都要转走了,爱咋咋地!!!!

    Reply 也来说两句?

    icon_wink.gif icon_neutral.gif icon_mad.gif icon_twisted.gif icon_smile.gif icon_eek.gif icon_sad.gif icon_rolleyes.gif icon_razz.gif icon_redface.gif icon_surprised.gif icon_mrgreen.gif icon_lol.gif icon_idea.gif icon_biggrin.gif icon_evil.gif icon_cry.gif icon_cool.gif icon_arrow.gif icon_confused.gif icon_question.gif icon_exclaim.gif