通过JavaScript脚本复制网页上的一个表格

<INPUT TYPE="button" value="复制测试表格" οnclick="CopyTable()">
<INPUT TYPE="button" value="将剪切板内容输出到编辑器中" οnclick="PastClipboardData()"><BR>
测试
<TABLE border="1" id="oTable">
<TR>
 <TD>测试表格</TD>
 <TD>测试表格</TD>
</TR>
<TR>
 <TD>测试表格</TD>
 <TD>测试表格</TD>
</TR>
</TABLE>文字<BR><BR>
<iframe id="editor" src="about:blank"></iframe>
<SCRIPT LANGUAGE="JavaScript">
<!--
function CopyTable()
{
 CopyHtmlElement(oTable)
}
 
function CopyHtmlElement(obj)
{
 editor.document.designMode = 'On'; // 将iframe变成可编辑模式,即HTML编辑器
 editor.document.write("<body></body>");  // 初始化编辑器
 editor.document.body.innerHTML = obj.outerHTML;
 editor.document.body.createTextRange().select(); // 选中编辑器内所有内容
 editor.document.execCommand("copy","",null); // 复制
}
function PastClipboardData()
{
 editor.focus();
 editor.document.execCommand("paste","",null); // 粘贴
}
-->
</SCRIPT>

这 样子功能是实现了,不过觉得有点不爽,必须借助HTML编辑器才可,不过从全选HTML编辑器的代码中,注意到了createTextRange()方 法,这个方法以前就有用过,只是一直没深入研究过。在Msdn中发现只有Body、TextArea等对象支持createTextRange()方法, 继续在msdn中仔细查阅了一下,createTextRange()返回的是一个 TextRange 对象,继续查阅 TextRange 对象,发现其有很多方法,先试了试findText方法,发现只能选中文字,不能选中对象,继续找,终于发现了moveToElementText就是我 们要找的方法:


<INPUT TYPE="button" value="选中测试表格" οnclick="CopyTable()">
测试
<TABLE border="1" id="oTable">
<TR>
 <TD>测试表格</TD>
 <TD>测试表格</TD>
</TR>
<TR>
 <TD>测试表格</TD>
 <TD>测试表格</TD>
</TR>
</TABLE>文字
<SCRIPT LANGUAGE="JavaScript">
<!--
function CopyTable()
{
 var txt = document.body.createTextRange();
 txt.moveToElementText(oTable);
 txt.select();
}
-->
</SCRIPT>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值