通過JavaScript指令碼複製網頁上的一個表格

來源:互聯網
上載者:User
javascript|指令碼|網頁

<INPUT TYPE="button" value="複製測試表格" >
<INPUT TYPE="button" value="將剪下板內容輸出到編輯器中" ><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="選中測試表格" >
測試
<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>



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.