一尘不染

选择一个带有Javascript的完整表格(复制到剪贴板)

javascript

我想知道是否有人知道如何使用js选择完整表格,以便用户可以右键单击所选内容,将其复制到剪贴板,然后将其粘贴到Excel。如果您手动选择表格,则该过程将正常进行。但是有时候,如果桌子的高度是屏幕的几倍,选择它来拖动鼠标会变得很乏味。因此,我想让用户可以单击“选择整个表”按钮,所有内容都可以复制了。

有任何想法吗?


阅读 271

收藏
2020-05-01

共1个答案

一尘不染

是。它不是很棘手,以下内容将在所有主流浏览器(包括IE 6,甚至是5)中都适用:

(在Jukka Korpela的评论指出以前的版本在IE 9标准模式下不起作用之后,于2012年9月7日更新)

码:

function selectElementContents(el) {

    var body = document.body, range, sel;

    if (document.createRange && window.getSelection) {

        range = document.createRange();

        sel = window.getSelection();

        sel.removeAllRanges();

        try {

            range.selectNodeContents(el);

            sel.addRange(range);

        } catch (e) {

            range.selectNode(el);

            sel.addRange(range);

        }

    } else if (body.createTextRange) {

        range = body.createTextRange();

        range.moveToElementText(el);

        range.select();

    }

}


<table id="tableId" border="1">

    <thead>

        <tr><th>Heading 1</th><th>Heading 2</th></tr>

    </thead>

    <tbody>

        <tr><td>cell 1</td><td>cell 2</td></tr>

    </tbody>

</table>



<input type="button" value="select table" onclick="selectElementContents( document.getElementById('tableId') );">
2020-05-01