Javascript - 插入复制的文本而不包含框

时间:2017-04-08 10:42:05

标签: javascript html copy textarea

我正在学习Javascript并面临以下问题。我想复制一个只读html textarea的文本并使用以下代码:

function copy_text ()
{
    var text = document.getElementById("textbox");
    var range = document.createRange();
    range.selectNode(text);
    window.getSelection().addRange(range);
    document.execCommand("copy");
}

实际上它有效,但有一点怪癖。如果我将复制的文本插入另一个输入字段,例如像webbrowser的输入行,则文本显示为文本完全正常。但是,如果我将文本粘贴到Microsoft Word中,文本将显示在一个包含两个幻灯片的框中,一个在底部,一个在左侧。这是怎么回事?

1 个答案:

答案 0 :(得分:2)

您正在选择整个节点,即textarea,这样就会将其复制到剪贴板中。然后Word将textarea粘贴到文档中。

如果您只想要textarea的文字,只需使用其select方法:

function copy_text() {
  var text = document.getElementById("textbox");
  text.select();
  document.execCommand("copy");
}
document.getElementById("btn").addEventListener("click", copy_text, false);
<textarea id="textbox" readonly>Some example text</textarea>
<br><input type="button" id="btn" value="Copy">

select选择textarea的内容,而不是textarea本身。