通過java script腳本複製網頁上的一個表格
今天有人問我一個問題:如何通過js腳本複製網頁上的一個表格?看起來似乎比較有難度,不過還是搞定了,順便把解決這個問題的過程記錄下來,希望能對寫腳本的兄弟們有所幫助。
以前沒有寫過這種腳本,不過想起來前不久剛看到一個腳本可以實現全選HTML編輯器的內容,於是想到一個方案:使用腳本將該表格插入HTML編輯器中,然後全選HTML編輯器內容,執行HTML編輯器的複製命令,即可實現複製表格功能,很快搞定:
<INPUT TYPE="button" value="複製測試表格" onclick="CopyTable()">
<INPUT TYPE="button" value="將剪切板內容輸出到編輯器中" 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)
{
gnMode = 'On'; // 將iframe變成可編輯模式,即HTML編輯器
e("<body></body>"); // 初始化編輯器
rHTML = rHTML;
teTextRange()ct(); // 選中編輯器內所有內容
Command("copy","",null); // 複製
}
function PastClipboardData()
{
s();
Command("paste","",null); // 粘貼
}
//-->
</SCRIPT>
這樣子功能是實現了,不過覺得有點不爽,必須藉助HTML編輯器才可,不過從全選HTML編輯器的代碼中,注意到了createTextRange()方法,這個方法以前就有用過,只是一直沒深入研究過。在Msdn中發現只有Body、TextArea等對象支持createTextRange()方法,繼續在msdn中仔細查閲了一下,createTextRange()返回的是一個TextRange對象,繼續查閲TextRange對象,發現其有很多方法,先試了試findText方法,發現只能選中文字,不能選中對象,繼續找,終於發現了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 = teTextRange();
ToElementText(oTable);
ct();
}
//-->
</SCRIPT>
類似於這樣的問題,可以想想以前有無寫過見過類似的'代碼,如果沒有也可以網上用關鍵字搜索一把,直接利用現有知識解決。msdn是一個非常好的寶庫,就如國小學漢字的字典一樣,從裏面可以找到絕大部分所需要的資料。正應了那句話,自己動手豐衣足食:)
-
編寫更好的Java單元測試的7個技巧
測試是開發的一個非常重要的方面,可以在很大程度上決定一個應用程序的命運。良好的測試可以在早期捕獲導致應用程序崩潰的問題,但較差的測試往往總是導致故障和停機。雖然有三種主要類型的軟件測試:單元測試,功能測試和集成測試,但是在這篇博文中,我們將討論開發人員...
-
Java語法基礎for語句練習
本文是本站小編搜索整理的關於Java語法基礎for語句練習,供參考學習,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!控制語句——for練習語句的嵌套應用累加求和,計數器循環嵌套一、語句的嵌套應用語句嵌套形式。其實就是語句中...
-
Java中的對象與引用知識詳解
在Java中,有一組名詞經常一起出現,它們就是“對象和對象引用”,很多朋友在初學Java的時候可能經常會混淆這2個概念,覺得它們是一回事,事實上則不然。今天我們就來一起了解一下對象和對象引用之間的區別和聯繫。以下僅供參考!1.何謂對象?在Java中有一句比較流行的話,叫...
-
Java 正則表達式
Java是一門編程語言,那麼大家知道Java正則表達式是怎樣的呢?下面一起來看看!Java正則表達式正則表達式定義了字符串的模式。正則表達式可以用來搜索、編輯或處理文本。正則表達式並不僅限於某一種語言,但是在每種語言中有細微的差別。正則表達式實例一個字符串其...