JS从IE / Microsoft Edge复制富文本

时间:2018-01-26 20:33:10

标签: javascript internet-explorer clipboard microsoft-edge

我的网站上有一个按钮,期望点击按钮时,应将一大块富文本格式(html格式)复制到用户的剪贴板,因此,他们可以将其粘贴到格式支持的富文本编辑器(即outlook)。

我使用多种不同的方法在Chrome / FF中工作,例如使用clipboard.jsclipboard-polyfill.js,或执行如下的本机复制命令:

function copyToClip(str) {
      function listener(e) {
        e.clipboardData.setData("text/html", htmlstr);
        e.preventDefault();
      }
      document.addEventListener("copy", listener);
      document.execCommand("copy");
      document.removeEventListener("copy", listener);
    };

但是,以上都不适用于Microsoft Edge或IE 。我想知道是否有可能在Edge / IE中实现目标,如果可以,我应该怎么做?

P.S。我想尽可能避免使用ZeroClipboard.js,因为它需要用户安装/启用Flash。

谢谢

2 个答案:

答案 0 :(得分:0)

这与Internet Explorer配合良好

 function paste() {
            //internet explorer
            var value = window.clipboardData.getData("Text");
            document.getElementById("Text1").value = value;
        }

答案 1 :(得分:0)

我使用的是Microsoft Edge版本83.0.478.45(正式版本)(64位)。我尝试使用此代码,它对我有用。

function CopyToClipboard() {
    var controlValue = "Assign Your Data";
        var textare = document.createElement('textarea');
        textare.textContent = controlValue;
        textare.style.position = "fixed";
        document.body.appendChild(textare);
        textare.focus();
        textare.select();
        try {
            window.focus();
            navigator.clipboard.writeText(textare.textContent);
        }
        catch (error) {
            console.error(error);
        }
        finally {
            document.body.removeChild(textare);
        }
 }