Javascript 选择表格并将其复制到剪贴板
我想选择不带标题的表,它可以工作,但我无法将其复制到剪贴板 页面如下: 代码如下:Javascript 选择表格并将其复制到剪贴板,javascript,html,html-table,copy,paste,Javascript,Html,Html Table,Copy,Paste,我想选择不带标题的表,它可以工作,但我无法将其复制到剪贴板 页面如下: 代码如下: <!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>
<!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>
欧洲央行库希德·塞苏加:2011-04-01
桌子
{
边界塌陷:塌陷;
}
表,td,th
{
边框:1px纯黑;
}
功能选择元素内容(el){
var body=document.body,范围,sel;
if(body.createTextRange){
range=body.createTextRange();
范围。移动到元素文本(el);
range.select();
range.execCommand('Copy');
}else if(document.createRange&&window.getSelection){
range=document.createRange();
范围。选择节点内容(el);
sel=window.getSelection();
选择removeAllRanges();
选择添加范围(范围);
sel.execCommand('Copy');
}
}
瓦卢塔
库尔斯
14141美元11856丹麦克朗74564GBP088150挪威克朗78055卢比401500CAD13686
在大多数浏览器中,无法复制到系统剪贴板。要做到这一点,你需要使用黑客。最常用的方法是使用Flash。这样做,似乎工作得很好
顺便说一下,execCommand()
是document
和TextRange
对象的一种方法,而不是Selection
对象,因此sel.execCommand(“复制”)
不可能工作
更新
我从来没有真正使用过零剪贴板。看过文档后,它看起来不像我所希望的那样(似乎没有办法复制富文本),甚至比我想象的更可怕。您可以使用ZeroClipboard通过
innerHTML
将表格内容复制为文本,但这是否可以接受取决于您希望用户如何处理复制的内容。这在IE8上对我有效:
var table = document.getElementById('copyHtmlToClipboard');
// Below line is essential !!!
table.contentEditable = 'true';
var controlRange = document.body.createControlRange();
controlRange.addElement(table);
controlRange.execCommand("Copy");
好的,我试试这个。我试图在不太了解javascript的情况下解决此javascript:)我不明白,我如何使用zeroclipboard选择表格?
TypeError:document.body.createControlRange不是函数
也table.contentEditable='true'代码>无效。不能传递字符串