美文网首页
网页内容复制粘贴(三种方案 兼容多种浏览器)

网页内容复制粘贴(三种方案 兼容多种浏览器)

作者: seemoonup | 来源:发表于2017-12-11 20:08 被阅读6次

tags:

  • js
  • ctrl+c

网页内容复制粘贴(三种方案 兼容多种浏览器)

对网页上的内容实现复制粘贴的功能

痛点:需要支持多种不同的浏览器 主要有IE,Firefox

  1. IE浏览器下的解决方案:
    window.clipboardData.setData("Text", text);
  2. 通用浏览器的解决方案:
    选中元素之后执行:
    document.execCommand('copy')
  3. Firefox下的解决方案
    两种折中的方案
    a. 监听hover事件 当鼠标移动至需要复制的文本上时 用户按下ctrl+c 实现复制
    b.window.prompt("Copy to clipboard: Ctrl+C, Enter", text); 弹出框内容为选中的文案,用户按下ctrl+c 实现复制

整合之后的代码为

function copyToClipboard(text) {
  if (window.clipboardData) { // Internet Explorer
    window.clipboardData.setData("Text", text);
  } else {
    var textArea = document.createElement("textarea");
    textArea.style.background = 'transparent';
    textArea.value = text;
    document.body.appendChild(textArea);
    textArea.select();
    try {
      if (!document.execCommand('copy')) {
        copyToClipboardMozilla(text);
      } else {
        showInfo("提示", "复制成功")
      }

    } catch (err) {
      console.log('Oops, unable to copy');
    }
      document.body.removeChild(textArea);
  }
}

function copyToClipboardMozilla(text) {
  window.prompt("Copy to clipboard: Ctrl+C, Enter", text);
}

$(".copy").on("mouseenter", function () {
  $(this).css("background-color", "#c8c9c8");
  $(this).focus();
  var textArea = document.createElement("textarea");
  textArea.style.background = 'transparent';
  textArea.id = "copyContent";
  textArea.value = $(this).text();
  document.body.appendChild(textArea);
  textArea.select(); 
})

$(".copy").on("mouseleave", function () {
  $(this).css("background-color", "");
 document.body.removeChild(document.getElementById("copyContent")); 
})

参考资料:

  1. 几个通用的解决复制的方法
  2. document.execCommand API
    W3C API
  3. How do I copy to the clipboard in JavaScript?
  4. How does Trello access the user's clipboard?
  5. 20 行 JS 代码,实现复制到剪贴板功能

兼容处理了浏览器的复制功能,有更好的方案解决欢迎留言联系
未经作者允许 请勿转载,谢谢 :)

相关文章

  • 网页内容复制粘贴(三种方案 兼容多种浏览器)

    tags: js ctrl+c 网页内容复制粘贴(三种方案 兼容多种浏览器) 对网页上的内容实现复制粘贴的功能 痛...

  • 浏览器常见的兼容问题

    什么是浏览器的兼容问题 浏览器的兼容性问题也就是网页的兼容性或者网站兼容性问题, 指网页在各种浏览器上的cs...

  • web前端开发中浏览器兼容问题(一)

    浏览器兼容性问题又被称为网页兼容性或网站兼容性问题,指网页在各种浏览器上的显示效果可能不一致而产生浏览器和网页间的...

  • 浏览器兼容问题

    浏览器兼容性问题又被称为网页兼容性或网站兼容性问题,指网页在各种浏览器上的显示效果可能不一致而产生浏览器和网页间的...

  • 浏览器兼容性

    一、什么是浏览器兼容性 浏览器兼容性问题又被称为网页兼容性或网站兼容性问题,指网页在各种浏览器上的显示效果可能不一...

  • 浏览器兼容性

    什么是浏览器的兼容性 浏览器兼容性问题又被称为网页兼容性或网站兼容性问题,指网页在各种浏览器上的显示效果可能不一致...

  • 五步骤教您加入EOS联盟白名单(新手推荐)

    1.注册EOS联盟会员 (网页兼容问题被大家多次吐槽了),不要在微信直接打开,复制粘贴到浏览器打开,最好用电脑版c...

  • 家家顺物联科技面试题

    1.什么是兼容性测试?兼容性测试侧重哪些方面? 网页在各个浏览器上的显示效果可能不一致而产生的浏览器和网页的兼容性...

  • browserslist使用手册

    网页样式浏览器兼容解决;查找目标浏端——解决哪些浏览器版本,node版本是我们想兼容的。 for css 工具 配...

  • 浏览器兼容

    浏览器兼容问题,是指因为不同的浏览器对同一段代码有不同的解析,可能会导致浏览器对网页内容解读错误,出现乱码、变形、...

网友评论

      本文标题:网页内容复制粘贴(三种方案 兼容多种浏览器)

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