第一步,把html中的所有copyTXT()改为copyTXT(this)
为孝义等地区用户提供了全套网页设计制作服务,及孝义网站建设行业解决方案。主营业务为成都做网站、成都网站制作、孝义网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
第二步,把js中的copyTXT()改为copyTXT(e)
第三步,把var copyDOM = document.querySelector(".copy");改为
var copyDOM = e.parentNode.querySelector(".copy");
1、最基本的复制
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="复制" onclick="setTxt()"
input type="button" value="读取" onclick="readTxt()"
2、扩展复制:复制表格
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等浏览器的复制
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'设置为'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('你好!');"复制文本“你好!”/button
textarea id="test"/textarea
我们在需要进行数组复制的时候可能会想到以下的方法
代码
var
arr1
=
[1,2,3,4,5];
var
arr2
=
[];
arr2
=
arr1;
console.log(arr1);
console.log(arr2);
执行结果如下:
[1,
2,
3,
4,
5]
[1,
2,
3,
4,
5]
在这个例子中,将数组arr1赋值给了另一个数组arr2。
查看执行结果,似乎复制了数组的内容并创建了相同的数组。
但是,由于数组是“引用类型”的数据,因此它不会复制该值,而只是共享存储该值的内存的位置。
因此,我们编写以下代码
arr2.push(6);
console.log(arr1);
console.log(arr2);
执行结果如下
[1,
2,
3,
4,
5,
6]
[1,
2,
3,
4,
5,
6]
根据以上结果可以发现即使我们只给arr2添加新值6,但是数组arr1中也会添加一个6,这就是因为两个
数组都只引用存储值的位置,如果更改任一数组中的数据,两者都会改变。
所以下面我们就来使用concat方法复制数组
我们来看具体示例
var
arr1
=
[1,2,3,4,5];
var
arr2
=
[];
arr2
=
arr1.concat();
arr2.push(6);
console.log(arr1);
console.log(arr2);
执行结果如下
[1,
2,
3,
4,
5]
[1,
2,
3,
4,
5,
6]
要将另一个数组复制到数组arr2,只需要在复制源arr1中执行concat()即可。
您可能感兴趣的文章:js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解深入理解javascript中concat方法javascript使用
concat
方法对数组进行合并的方法JS
Array创建及concat()split()slice()的使用方法浅谈JavaScript的push(),pop(),concat()方法JavaScript模拟数组合并concatjs采用concat和sort将N个数组拼接起来的方法
可以使用clipboard插件解决这个问题。
github里直接搜索clipboard就可以找到了。
该插件并不依赖jquery。直接引入即可使用。
使用方法:
input id="foo" value="被复制的内容"
button class="btn" data-clipboard-target="#foo"点击复制/button
new Clipboard('.btn');
这里的.btn是元素的class属性,可以使用任意id或者class以及元素节点名称来实例化插件。
默认会为元素绑定click事件,点击的时候会触发。
data-clipboard-target参数指定被复制内容的元素。
如上例,点击按钮后会将input的值“被复制的内容”几个字复制到剪切板中。
更多使用方法可以自行github查询。