第一步,把html中的所有copyTXT()改為copyTXT(this)
為孝義等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及孝義網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站制作、孝義網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
第二步,把js中的copyTXT()改為copyTXT(e)
第三步,把var copyDOM = document.querySelector(".copy");改為
var copyDOM = e.parentNode.querySelector(".copy");
1、最基本的復(fù)制
Java代碼
script language="JavaScript"
function readTxt()
{
alert(window.clipboardData.getData("text"));
}
function setTxt()
{
var t=document.getElementById("txt");
t.select();
window.clipboardData.setData('text',t.createTextRange().text);
}
/script
input name="txt" value="測試"
input type="button" value="復(fù)制" onclick="setTxt()"
input type="button" value="讀取" onclick="readTxt()"
2、擴展復(fù)制:復(fù)制表格
Java代碼
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(document.getElementById('oTable'));
txt.select();
}
//--
/SCRIPT
、兼容IE,firefox等瀏覽器的復(fù)制
Java代碼
script
function copyToClipboard(txt) {
if(window.clipboardData) {
window.clipboardData.clearData();
window.clipboardData.setData("Text", txt);
} else if(navigator.userAgent.indexOf("Opera") != -1) {
window.location = txt;
} else if (window.netscape) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert("被瀏覽器拒絕!\n請在瀏覽器地址欄輸入'about:config'并回車\n然后將'signed.applets.codebase_principal_support'設(shè)置為'true'");
}
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
if (!clip)
return;
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
if (!trans)
return;
trans.addDataFlavor('text/unicode');
var str = new Object();
var len = new Object();
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
var copytext = txt;
str.data = copytext;
trans.setTransferData("text/unicode",str,copytext.length*2);
var clipid = Components.interfaces.nsIClipboard;
if (!clip)
return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
}
}
/script
button onclick="copyToClipboard('你好!');"復(fù)制文本“你好!”/button
textarea id="test"/textarea
我們在需要進(jìn)行數(shù)組復(fù)制的時候可能會想到以下的方法
代碼
var
arr1
=
[1,2,3,4,5];
var
arr2
=
[];
arr2
=
arr1;
console.log(arr1);
console.log(arr2);
執(zhí)行結(jié)果如下:
[1,
2,
3,
4,
5]
[1,
2,
3,
4,
5]
在這個例子中,將數(shù)組arr1賦值給了另一個數(shù)組arr2。
查看執(zhí)行結(jié)果,似乎復(fù)制了數(shù)組的內(nèi)容并創(chuàng)建了相同的數(shù)組。
但是,由于數(shù)組是“引用類型”的數(shù)據(jù),因此它不會復(fù)制該值,而只是共享存儲該值的內(nèi)存的位置。
因此,我們編寫以下代碼
arr2.push(6);
console.log(arr1);
console.log(arr2);
執(zhí)行結(jié)果如下
[1,
2,
3,
4,
5,
6]
[1,
2,
3,
4,
5,
6]
根據(jù)以上結(jié)果可以發(fā)現(xiàn)即使我們只給arr2添加新值6,但是數(shù)組arr1中也會添加一個6,這就是因為兩個
數(shù)組都只引用存儲值的位置,如果更改任一數(shù)組中的數(shù)據(jù),兩者都會改變。
所以下面我們就來使用concat方法復(fù)制數(shù)組
我們來看具體示例
var
arr1
=
[1,2,3,4,5];
var
arr2
=
[];
arr2
=
arr1.concat();
arr2.push(6);
console.log(arr1);
console.log(arr2);
執(zhí)行結(jié)果如下
[1,
2,
3,
4,
5]
[1,
2,
3,
4,
5,
6]
要將另一個數(shù)組復(fù)制到數(shù)組arr2,只需要在復(fù)制源arr1中執(zhí)行concat()即可。
您可能感興趣的文章:js嵌套的數(shù)組扁平化:將多維數(shù)組變成一維數(shù)組以及push()與concat()區(qū)別的講解深入理解javascript中concat方法javascript使用
concat
方法對數(shù)組進(jìn)行合并的方法JS
Array創(chuàng)建及concat()split()slice()的使用方法淺談JavaScript的push(),pop(),concat()方法JavaScript模擬數(shù)組合并concatjs采用concat和sort將N個數(shù)組拼接起來的方法
可以使用clipboard插件解決這個問題。
github里直接搜索clipboard就可以找到了。
該插件并不依賴jquery。直接引入即可使用。
使用方法:
input?id="foo"?value="被復(fù)制的內(nèi)容"
button?class="btn"?data-clipboard-target="#foo"點擊復(fù)制/button
new?Clipboard('.btn');
這里的.btn是元素的class屬性,可以使用任意id或者class以及元素節(jié)點名稱來實例化插件。
默認(rèn)會為元素綁定click事件,點擊的時候會觸發(fā)。
data-clipboard-target參數(shù)指定被復(fù)制內(nèi)容的元素。
如上例,點擊按鈕后會將input的值“被復(fù)制的內(nèi)容”幾個字復(fù)制到剪切板中。
更多使用方法可以自行g(shù)ithub查詢。