js如何实现带格式的将div内的内容复制到剪切板?

图片描述
页面上的内容

尝试了一下ZeroClipboard做复制到剪切板,粘贴出来的内容是纯文本格式的。
如:
收货姓名:xxx手机号码:13333333333收货地址:河北省 保定市 市辖区 恒祥北大街

有没有什么方法可以像用鼠标在浏览器上选中复制那样,把文字的排列格式都能一同复制的?
如:
收货姓名:xxx
手机号码:13333333333
收货地址:河北省 保定市 市辖区 恒祥北大街

代码如下

<div id="test"></div>
<input type="submit" name="btn_copy" value="复制" id="btn_submit" />
<script type="text/javascript">
    var test='<ul>'+
        '<li>收货姓名:xxx</li>'+
        '<li>手机号码:13333333333</li>'+
        '<li>收货地址:河北省 保定市 市辖区 恒祥北大街</li></ul>';
    document.getElementById("test").innerHTML=test;

    var clip = new ZeroClipboard.Client();
    clip.setHandCursor(true);
    var text= document.getElementById('test').text;
    clip.setText(text);
    clip.glue("btn_submit");
</script>
阅读 8.1k
2 个回答

问题已解决。
先让需要复制的地方被选中,然后执行复制就好了。

  var text = document.getElementById(element);
        if (document.body.createTextRange) {
            var range = document.body.createTextRange();
            range.moveToElementText(text);
            range.select();
        } else if (window.getSelection) {
            var selection = window.getSelection();
            var range = document.createRange();
            range.selectNodeContents(text);
            selection.removeAllRanges();
            selection.addRange(range);
        } else {
            alert("none");
        }
        document.execCommand('Copy','false',null);

text=document.getElementById('test').outerHTML

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题