我想选择没有标题的表格,它可以正常工作,但我无法理解,它会复制到剪贴板。
以下是页面:http://tuudik.lohv.eu/Asjad/EURXML/
以下是代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>ECB kursid seisuga: 2011-04-01 </title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<style type="text/css">
table
{
border-collapse:collapse;
}
table, td, th
{
border:1px solid black;
}
</style>
<script type="text/javascript">
function selectElementContents(el) {
var body = document.body, range, sel;
if (body.createTextRange) {
range = body.createTextRange();
range.moveToElementText(el);
range.select();
range.execCommand('Copy');
} else if (document.createRange && window.getSelection) {
range = document.createRange();
range.selectNodeContents(el);
sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
sel.execCommand('Copy');
}
}
</script>
</head>
<body>
<table cellpadding="2">
<thead>
<tr>
<th>Valuuta</th>
<th>Kurss</th>
</tr>
</thead>
<tbody id="currencies">
<tr><td>USD</td><td>1,4141</td></tr><tr><td>JPY</td><td>118,56</td></tr><tr><td>DKK</td><td>7,4564</td></tr><tr><td>GBP</td><td>0,88150</td></tr><tr><td>NOK</td><td>7,8055</td></tr><tr><td>RUB</td><td>40,1500</td></tr><tr><td>CAD</td><td>1,3686</td></tr></tbody>
</table>
<input type="button" value="select table"
onclick="selectElementContents( document.getElementById('currencies') );">
</body>
</html>
答案 0 :(得分:2)
这适用于IE8:
var table = document.getElementById('copyHtmlToClipboard');
// Below line is essential !!!
table.contentEditable = 'true';
var controlRange = document.body.createControlRange();
controlRange.addElement(table);
controlRange.execCommand("Copy");
答案 1 :(得分:0)
在大多数浏览器中,无法复制到系统剪贴板。要做到这一点,你需要使用黑客。最常见的方法是使用Flash。 ZeroClipboard这样做并且看起来效果很好。
顺便说一下,execCommand()
是document
和TextRange
个对象的方法,而不是Selection
个对象,因此sel.execCommand("Copy")
无法工作。< / p>
<强>更新强>
我从未真正使用过ZeroClipboard。看过这些文档之后,它看起来并不像我希望的那样(似乎没有办法复制富文本),甚至比我想象的还要糟糕。您可以使用ZeroClipboard通过innerHTML
将表格的内容复制为文本,但这是否可接受取决于您希望用户可以对复制的内容执行的操作。