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

王朝asp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

<INPUT TYPE="button" value="复制测试表格" onclick="CopyTable()">

<INPUT TYPE="button" value="将剪切板内容输出到编辑器中" onclick="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="选中测试表格" onclick="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>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有