如何删除" document.execCommand(" copy")"空白和换行?

时间:2018-05-02 03:53:32

标签: javascript html select clipboard

我创建的代码是在没有触摸键盘或右键单击文本的情况下复制文本。虽然我仍然希望在使用正则表达式选择后删除空格或新行。虽然我不确定为什么这不起作用。有什么帮助吗?

的Javascript

<p> Some of the text</p>

<p> <b>Some</b> of the text</p>
<p> <b>Some</b> of the text</p>

<table><tr><td>wew</td></tr></table>

HTML

setTimeout(function () {
    console.log('setTimeout1')
    Promise.resolve().then(function () {
        console.log('promise')
    });
})
setTimeout(function () {
    console.log('setTimeout2');
});

1 个答案:

答案 0 :(得分:0)

根据此document getSelection,当转换为字符串时,将返回所选文本。

因此需要使用toString()或附加一对引号来获取所选文本

&#13;
&#13;
var t = "";

function gText(e) {
  t = document.all ?
    document.selection.createRange().text :
    document.getSelection().toString();
  document.execCommand("copy").value = t.replace(/\s+/g, '');
  // for test only 
  document.getElementById("test").innerHTML = t.replace(/\s+/g, '');
}

document.onmouseup = gText;
if (!document.all) document.captureEvents(Event.MOUSEUP);
&#13;
<p> Some of the text</p>

<p> <b>Some</b> of the text</p>
<p> <b>Some</b> of the text</p>

<table>
  <tr>
    <td>wew</td>
  </tr>
</table>
<!-- test DOM -->
<div id="test"></div>
&#13;
&#13;
&#13;