- 相關(guān)推薦
通過java script腳本復制網(wǎng)頁上的一個表格
今天有人問我一個問題:如何通過js腳本復制網(wǎng)頁上的一個表格?看起來似乎比較有難度,不過還是搞定了,順便把解決這個問題的過程記錄下來,希望能對寫腳本的兄弟們有所幫助。
以前沒有寫過這種腳本,不過想起來前不久剛看到一個腳本可以實現(xiàn)全選HTML編輯器的內(nèi)容,于是想到一個方案:使用腳本將該表格插入HTML編輯器中,然后全選HTML編輯器內(nèi)容,執(zhí)行HTML編輯器的復制命令,即可實現(xiàn)復制表格功能,很快搞定:
<INPUT TYPE="button" value="復制測試表格" onclick="CopyTable()">
<INPUT TYPE="button" value="將剪切板內(nèi)容輸出到編輯器中" onclick="PastClipboardData()">
測試
<TABLE id="oTable">
<TR>
<TD>測試表格</TD>
<TD>測試表格</TD>
</TR>
<TR>
<TD>測試表格</TD>
<TD>測試表格</TD>
</TR>
</TABLE>文字
<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(); // 選中編輯器內(nèi)所有內(nèi)容
editor.document.execCommand("copy","",null); // 復制
}
function PastClipboardData()
{
editor.focus();
editor.document.execCommand("paste","",null); // 粘貼
}
//-->
</SCRIPT>
這樣子功能是實現(xiàn)了,不過覺得有點不爽,必須借助HTML編輯器才可,不過從全選HTML編輯器的代碼中,注意到了createTextRange()方法,這個方法以前就有用過,只是一直沒深入研究過。在Msdn中發(fā)現(xiàn)只有Body、TextArea等對象支持createTextRange()方法,繼續(xù)在msdn中仔細查閱了一下,createTextRange()返回的是一個TextRange對象,繼續(xù)查閱TextRange對象,發(fā)現(xiàn)其有很多方法,先試了試findText方法,發(fā)現(xiàn)只能選中文字,不能選中對象,繼續(xù)找,終于發(fā)現(xiàn)了moveToElementText就是我們要找的方法:
<INPUT TYPE="button" value="選中測試表格" onclick="CopyTable()">
測試
<TABLE 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>
類似于這樣的問題,可以想想以前有無寫過見過類似的代碼,如果沒有也可以網(wǎng)上用關(guān)鍵字搜索一把,直接利用現(xiàn)有知識解決。msdn是一個非常好的寶庫,就如小學學漢字的字典一樣,從里面可以找到絕大部分所需要的資料。正應了那句話,自己動手豐衣足食:)
【通過java script腳本復制網(wǎng)頁上的一個表格】相關(guān)文章:
java script remove Child的使用注意事項08-14
編寫Java無腳本的JSP頁面的方法08-18
linux下執(zhí)行java程序的sh腳本教程08-15
Excel2013如何導入網(wǎng)頁上的表格10-09
java如何通過url讀取文件05-07
Word2007復制或剪切表格的技巧09-04
在WPS表格中快速復制公式的方法06-14