如何使复制按钮复制“不是”

时间:2019-04-22 11:31:23

标签: javascript html

我试图创建一个复制按钮来复制一些C ++代码,然后用户可以稍后将其粘贴到编译器中,但是当复制按钮复制引号时,它将“复制”到剪贴板上而不是实际的标记上。

这是我的代码:

<textarea rows="15" cols=60" id="inputtxt">

  // My c++ stuff  </textarea>  <br>  <button onclick="myfunction();">Copy code</button>

和脚本:

function myfunction() {
var copyTxt = document.getElementsById("InputTxt");
copyTxt.select();
document.execCommand("copy");}

我如何做到这一点,以便它复制实际的引号而不是仅仅用'

2 个答案:

答案 0 :(得分:0)

Copy不会进行任何编码或转换,这意味着您的c ++代码已被编码,因此您复制的文本是实体。尝试在呈现的浏览器中查看html代码的来源以证明这一点。

如果您的源代码不是实体,那么您需要告诉我们如何使用复制的文本,此时必须对其进行编码。

答案 1 :(得分:-2)

尝试

function copyToClipboard(text) {
    if (window.clipboardData && window.clipboardData.setData) {
        // IE specific code path to prevent textarea being shown while dialog is visible.
        return clipboardData.setData("Text", text); 

    } else if (document.queryCommandSupported && document.queryCommandSupported("copy")) {
        var textarea = document.createElement("textarea");
        textarea.textContent = text;
        textarea.style.position = "fixed";  // Prevent scrolling to bottom of page in MS Edge.
        document.body.appendChild(textarea);
        textarea.select();
        try {
            return document.execCommand("copy");  // Security exception may be thrown by some browsers.
        } catch (ex) {
            console.warn("Copy to clipboard failed.", ex);
            return false;
        } finally {
            document.body.removeChild(textarea);
        }
    }
}

https://jsfiddle.net/fx6a6n6x/