美文网首页前端知识你不知道的JavaScript
js实现复制内容到剪切板的细节

js实现复制内容到剪切板的细节

作者: 散漫二丫 | 来源:发表于2017-05-08 11:46 被阅读59次

    前言

    在做web站开发的过程中,需要对某些内容实现复制到剪切板的功能,实现过程中有些不得不说的坑做个小记,避免以后再次踩坑。

    1.clipboardData

    //该方案仅支持IE内核的浏览器
    function copyToClipBoard(copyText) {
            if (window.clipboardData) {
                window.clipboardData.setData("Text", copyText);
            }
    }
    

    2.document.execCommand('copy')

    //该方案支持主流浏览器
    //缺陷在于,在石勇jq的select()选中要copy的元素时仅支持text和textarea,并且需要以用户角度触发copy操作
    <input type="text" id="twitter" value="http://twitter.com/craigbuckler" />
    <button data-copytarget="#twitter">copy</button>
    
    (function() {
    
        'use strict';
      
      // click events
      document.body.addEventListener('click', copy, true);
    
        // event handler
        function copy(e) {
    
        // find target element
        var 
          t = e.target,
          c = t.dataset.copytarget,
          inp = (c ? document.querySelector(c) : null);
          
        // is element selectable?
        if (inp && inp.select) {
          
          // select text
          inp.select();
    
          try {
            // copy text
            document.execCommand('copy');
            inp.blur();
            
            // copied animation
            t.classList.add('copied');
            setTimeout(function() { t.classList.remove('copied'); }, 1500);
          }
          catch (err) {
            alert('please press Ctrl/Cmd+C to copy');
          }
          
        }
        
        }
    
    })();
    
    

    相关文章

      网友评论

        本文标题:js实现复制内容到剪切板的细节

        本文链接:https://www.haomeiwen.com/subject/zhemtxtx.html