我想知道是否有人知道如何使用js选择完整表格,以便用户可以右键单击所选内容,将其复制到剪贴板,然后将其粘贴到Excel。如果您手动选择表格,则该过程将正常进行。但是有时候,如果桌子的高度是屏幕的几倍,选择它来拖动鼠标会变得很乏味。因此,我想让用户可以单击“选择整个表”按钮,所有内容都可以复制了。
有任何想法吗?
是。它不是很棘手,以下内容将在所有主流浏览器(包括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') );">