如何用javascript 深拷贝实现拷贝,粘贴的功能

使用js实现复制功能
直接使用js的复制功能会造成浏览器不兼容,几乎主流的浏览器都不能使用,这个方法是
window.clipboardData.setData("Text",clipBoardContent);
解决方法:
使用ZeroClipboard方法能解决上述问题,不过也有条件,使用这个方法需要引用ZeroClipboard.js,在51.com首服预约会用到这个技术,详细的内容可以仿照那个,下面给出一个例子。
clip = new ZeroClipboard.Client(); clip.setHandCursor(true);
clip.addEventListener('load', function (client) {
//console.log("Flash movie loaded and ready."); });
clip.addEventListener('mouseOver', function (client) { // update
the text on mouse over clip.setText($('#mycode').html()); });
clip.addEventListener('complete', function (client, text) {
//console.log("Copied text to clipboard: " + text );
alert("复制成功!"); }); clip.glue('copy_code',
'demoiddiv');
这段代码的最后的demoiddiv是包含复制按钮的div的id值,copy_code是复制按钮的id值,增加监听再次就不在赘述,按照字面意思就可以理解。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。JS 实现复制粘贴功能 - CSDN博客
JS 实现复制粘贴功能
JS 实现复制粘贴功能
目前没有做过多的测试,只是测试了几个手机,介绍:
(1)移动端:
chrome(版本 58.0.-bit))、
猎豹(V6.0.114.14559)、
QQ浏览器(Chromium53. \ IE11.0.)、
火狐(版本 53.02)
(2)App端
苹果6(版本:10.3.1)、
华为 (版本:6.0.1) 、
锤子 YQ601(版本:5.1.1)、
红米 Redmi Note 2(版本:5.0.2)
android 4.2三星(WebView、QQ浏览器可以实现)
android 4.2三星 UC浏览器
LenovoA5800-D (版本:4.4.4,内核版本:3.10.48)
接下来,介绍他的使用方式,前提条件,下载clipboard.min.js插件,下载地址:
两种使用方式:
&通过text参数来进行复制操作&
class="btn"&复制&
src="js/version/clipboard.min.js"&&
var clipboard = new Clipboard('.btn', {
text: function() {
return '这里是text参数返回的内容 - Hello yubai8';
clipboard.on('success', function(e) {
alert("文字已复制到剪贴板中");
console.log(e);
clipboard.on('error', function(e) {
alert("异常错误: " + JSON.stringify(e.message));
console.log(e);
&!DOCTYPE html&
charset="UTF-8"&
name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"&
&欢迎光临 yubai9&
class="btn" data-clipboard-action="copy" data-clipboard-target="div"&Copy&
src="js/version/clipboard.min.js"&&
var clipboard = new Clipboard('.btn');
clipboard.on('success', function(e) {
alert("文字已复制到剪贴板中");
console.log(e);
clipboard.on('error', function(e) {
alert("异常错误: " + JSON.stringify(e));
console.log(e);
PS:其实, clipboard.min.js只是做了下封装兼容,主要==核心代码==还是这个,
document.ExecCommand("copy")
==浏览器支持返回 true,不支持或者没启用返回 false==
!!!==下面为我简单封装功能:==!!!
看情况来定是否采用,体积小,我认为我的功能够用就可以了!
下面是关键JS,压缩完2K,如果不需要做amd/cmd 去掉没用的JS只有1K,是不是完美
我的index.js
(function(f) {
if(typeof exports === "object" && typeof module !== "undefined") {
module.exports = f()
} else if(typeof define === "function" && define.amd) {
define([], f)
if(typeof window !== "undefined") {
g = window
} else if(typeof global !== "undefined") {
g = global
} else if(typeof self !== "undefined") {
g.Clipboard = f()
})(function() {
var copy = {}
copy.coptText = function(copybtn, cb) {
copybtn = event || document.querySelector(copybtn)
copybtn.addEventListener('click', function() {
var copyTextarea = document.querySelector(copybtn.getAttribute("data-copy"))
(copyTextarea.nodeName === 'INPUT' || copyTextarea.nodeName === 'TEXTAREA') ? copyTextarea.select(): copy.selectText(copyTextarea)
copyTextarea.focus()
var successful = document.execCommand('copy')
cb(successful)
} catch(err) {
console.log('哎呀,无法复制')
copy.selectText = function(copyTextarea) {
if(copyTextarea.hasAttribute('contenteditable')) {
copyTextarea.focus()
if(document.selection) {
var range = document.body.createTextRange()
range.moveToElementText(copyTextarea)
range.select()
} else if(window.getSelection) {
var selection = window.getSelection()
var range = document.createRange()
range.selectNodeContents(copyTextarea)
selection.removeAllRanges()
selection.addRange(range)
selectedText = selection.toString()
this.copy = copy
使用介绍:
&!DOCTYPE html&
charset="UTF-8"&
name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"&
align="center"&复制操作&
class="js-copyText"&你好,我是文本125&
class="js-textareacopybtn" data-copy=".js-copyText"&文本复制&
rows="5"&&
src="js/index.js"&&
type="text/javascript"&
copy.coptText(".js-textareacopybtn", function(flag) {
return flag ? alert("文字已复制到剪贴板中") : alert("请长按选中复制")
对了,如果想实现低版本浏览器的复制,类似于这种情况:
可以清晰的看到,这个功能是我点击按钮(文本复制)之后,出现的复制提示框,并不是我手动直接选中的,
是input 输入框可以达到这个效果,但是有个问题是,你使用了input之后如果你打算 disabled="disabled" 或者 readonly="readonly"这样的话,那么就达不到你想要的效果了!
最后,document.ExecCommand的使用介绍:(最后有官网链接)
document.execCommand("2D-Position","false","true");
下面列出的是指令参数及意义
2D-Position 允许通过拖曳移动绝对定位的对象。
AbsolutePosition 设定元素的 position 属性为“absolute”(绝对)。
BackColor 设置或获取当前选中区的背景颜色。
BlockDirLTR 目前尚未支持。
BlockDirRTL 目前尚未支持。
Bold 切换当前选中区的粗体显示与否。
BrowseMode 目前尚未支持。
Copy 将当前选中区复制到剪贴板。
CreateBookmark 创建一个书签锚或获取当前选中区或插入点的书签锚的名称。
CreateLink 在当前选中区上插入超级链接,或显示一个对话框允许用户指定要为当前选中区插入的超级链接的 URL。
Cut 将当前选中区复制到剪贴板并删除之。
Delete 删除当前选中区。
DirLTR 目前尚未支持。
DirRTL 目前尚未支持。
EditMode 目前尚未支持。
FontName 设置或获取当前选中区的字体。
FontSize 设置或获取当前选中区的字体大小。
ForeColor 设置或获取当前选中区的前景(文本)颜色。
FormatBlock 设置当前块格式化标签。
Indent 增加选中文本的缩进。
InlineDirLTR 目前尚未支持。
InlineDirRTL 目前尚未支持。
InsertButton 用按钮控件覆盖当前选中区。
InsertFieldset 用方框覆盖当前选中区。
InsertHorizontalRule 用水平线覆盖当前选中区。
InsertIFrame 用内嵌框架覆盖当前选中区。
InsertImage 用图像覆盖当前选中区。
InsertInputButton 用按钮控件覆盖当前选中区。
InsertInputCheckbox 用复选框控件覆盖当前选中区。
InsertInputFileUpload 用文件上载控件覆盖当前选中区。
InsertInputHidden 插入隐藏控件覆盖当前选中区。
InsertInputImage 用图像控件覆盖当前选中区。
InsertInputPassword 用密码控件覆盖当前选中区。
InsertInputRadio 用单选钮控件覆盖当前选中区。
InsertInputReset 用重置控件覆盖当前选中区。
InsertInputSubmit 用提交控件覆盖当前选中区。
InsertInputText 用文本控件覆盖当前选中区。
InsertMarquee 用空字幕覆盖当前选中区。
InsertOrderedList 切换当前选中区是编号列表还是常规格式化块。
InsertParagraph 用换行覆盖当前选中区。
InsertSelectDropdown 用下拉框控件覆盖当前选中区。
InsertSelectListbox 用列表框控件覆盖当前选中区。
InsertTextArea 用多行文本输入控件覆盖当前选中区。
InsertUnorderedList 切换当前选中区是项目符号列表还是常规格式化块。
Italic 切换当前选中区斜体显示与否。
JustifyCenter 将当前选中区在所在格式化块置中。
JustifyFull 目前尚未支持。
JustifyLeft 将当前选中区所在格式化块左对齐。
JustifyNone 目前尚未支持。
JustifyRight 将当前选中区所在格式化块右对齐。
LiveResize 迫使 MSHTML 编辑器在缩放或移动过程中持续更新元素外观,而不是只在移动或缩放完成后更新。
MultipleSelection 允许当用户按住 Shift 或 Ctrl 键时一次选中多于一个站点可选元素。
Open 目前尚未支持。
Outdent 减少选中区所在格式化块的缩进。
OverWrite 切换文本状态的插入和覆盖。
Paste 用剪贴板内容覆盖当前选中区。
PlayImage 目前尚未支持。
Print 打开打印对话框以便用户可以打印当前页。
Redo 目前尚未支持。
Refresh 刷新当前文档。
RemoveFormat 从当前选中区中删除格式化标签。
RemoveParaFormat 目前尚未支持。
SaveAs 将当前 Web 页面保存为文件。
SelectAll 选中整个文档。
SizeToControl 目前尚未支持。
SizeToControlHeight 目前尚未支持。
SizeToControlWidth 目前尚未支持。
Stop 目前尚未支持。
StopImage 目前尚未支持。
StrikeThrough 目前尚未支持。
Subscript 目前尚未支持。
Superscript 目前尚未支持。
UnBookmark 从当前选中区中删除全部书签。
Underline 切换当前选中区的下划线显示与否。
Undo 目前尚未支持。
Unlink 从当前选中区中删除全部超级链接。
Unselect 清除当前选中区的选中状态。
详见官方文档
本文已收录于以下专栏:
相关文章推荐
一、实现点击按钮,复制文本框中的的内容
script type="text/javascript"...
js如何复制一个对象
最近一直在做一个Web Excel项目,其中一项功能一直很纠结,就是数据的复制粘贴功能。功能要求:可以把Web端数据粘贴到Excel中,也可以从Excel中直接粘贴数据到页面编辑...
js实现网页内容的复制粘贴
示例代码如下:
function readTxt(){
   alert(window.clipboardData.getData("text"));
在ie中window.clipboardData(剪切板对象)是可以被获取,所以利用这个方法我们可以实现在IE当中复制粘贴的功能,demo如下!
meta ht...
上一篇博客的升级版,哈哈,功能室实现了,但是代码写的比较low,小女子还处于菜鸟阶段,欢迎大神指点,不喜勿喷^_^。话不多说,先上代码
这两天在做Web前端时,遇到需求通过js实现文本复制的功能。
先不考虑浏览器的兼容性,看看各浏览器对复制功能的支持情况:
1、IE浏览器,解决方法有三种,代码如下:
function ...
JS复制内容到剪贴板
复制到剪贴板
$(document).ready(function(){
if ( window.clipboardData ) {
首先,加载clipboard.js文件(我上网找的一个cdn):其次,html代码:
他的最新文章
讲师:钟钦成
讲师:宋宝华
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)sponsored links
通过如何通过js实现复制粘贴功能
在ie中window.clipboardData(剪切板对象)是可以被获取,所以利用这个方法我们可以实现在IE当中粘贴的功能,demo如下!
&meta http-equiv="Content-Type" content="text/ charset=utf-8"&
&title&clipboard&/title&
&SCRIPT language=JavaScript&
function copy()
var obj=document.getElementById("txarea");
window.clipboardData.setData("Text",obj.value);//设置数据
alert("成功");
function paste() {
var obj=document.getElementById("txarea");
var clipboard = window.clipboardData.getData('Text');
clipboard == null ? alert('no data') : obj.value =
&INPUT name=Button onClick="txarea.value=''" type=button value='clear'&
&INPUT name=Button onClick="copy('textarea')" type=button value='copy'&
&INPUT name=Button onClick="paste('textarea')"; type=button value='paste'&&br&
&textarea name="txarea" id="txarea" cols="105" rows="11" class="transform"&&/textarea&&/p&
上述代码在IE中访问是可以实现粘贴的!但是其他浏览器并不被支持!于是找了下资料,由于现在浏览器种类也越来越多,诸如 IE、Firefox、Chrome、Safari等等,因此现在要实现一个js内容到剪贴板的小功能就不是一件那么容易的事了。 在FLASH 9 时代,有一个通杀所有浏览器的js内容到剪贴板的方案:这个方案是一个最流行的方法: 著名的Clipboard Copy解决方案 利用一个clipboard.swf作为桥梁,内容到剪贴板。原理是:创建一个隐藏的flash文件,同时给给flash的变量FlashVars 赋&clipboard=..&,通过这个赋值flash就会把的内容放到剪贴板。这个方法兼容IE、Firefox、Opera、chrome、 Safari,真可谓&万能&的解决方案。浏览器Flash的安装率非常高,这几乎是一个完美的解决方案。
demo如下所示:
&!DOCTYPE HTML&
&html lang="en"&
&meta charset="utf-8"/&
&meta name="copyright" content=""/&
&title&粘贴&/title&
&div class="one"&
&input type="text" class="gift_num fl" value="XXXXXXXXXXXXXXXXXXXXXX" disabled="disabled" readonly="true"/&
&a href="javascript:;" hidefocus="none" class="btn_copy block fl" id="btnCopy"&&/a&
&script type="text/javascript" src="jquery.min.js"&&/script&
&script type="text/javascript" src="ZeroClipboard.js"&&/script&
&script type="text/javascript"&//这里的参数说明一下,text是要的文本内容,button是点击触发的dom对象,msg是成功后的提示信息,parent是包含flash的父元素
function clipboard(text, button, msg, parent) {
if (window.clipboardData) {//如果是IE浏览器
var copyBtn = document.getElementById(button);
copyBtn.onclick = function() {
window.clipboardData.setData('text', text);
alert(msg);
} else {//非IE浏览器
var clip = new ZeroClipboard.Client();//初始化一个剪切板对象
clip.setHandCursor(true);//设置手型游标
clip.setText(text);//设置待的文本内容
clip.addEventListener("mouseUp", function(client) {//绑定mouseUp事件触发
alert(msg);
clip.glue(button,parent);//调用ZeroClipboard.js的内置方法处理flash的位置的问题
return false;
$(function(){
clipboard($(".gift_num").val(),"btnCopy","成功",'btnCopy');//调用方式
针对上面的demo,我修改了下ZeroClipboard.js插件里面的代码,以便能在不确定按钮在什么位置的情况下可以使用!代码如下:红色是修改过的代码
var ZeroClipboard = {
version: "1.0.7",
clients: {},
moviePath: '/js/ZeroClipboard.swf',
nextId: 1,
$: function(thingy) {
if (typeof(thingy) == 'string') thingy = document.getElementById(thingy);
if (!thingy.addClass) {
thingy.hide = function() {
this.style.display = 'none';
thingy.show = function() {
this.style.display = '';
thingy.addClass = function(name) {
this.removeClass(name);
this.className += ' ' +
thingy.removeClass = function(name) {
var classes = this.className.split(/\s+/);
var idx = -1;
for (var k = 0; k & classes. k++) {
if (classes[k] == name) {
k = classes.
if (idx & -1) {
classes.splice(idx, 1);
this.className = classes.join(' ');
return this;
thingy.hasClass = function(name) {
return !!this.className.match(new RegExp("\\s*" + name + "\\s*"));
setMoviePath: function(path) {
this.moviePath =
dispatch: function(id, eventName, args) {
var client = this.clients[id];
if (client) {
client.receiveEvent(eventName, args);
register: function(id, client) {
this.clients[id] =
getDOMObjectPosition: function(obj, stopObj) {
var info = {
width: obj.width ? obj.width : obj.offsetWidth,
height: obj.height ? obj.height : obj.offsetHeight
while (obj && (obj != stopObj)) {
info.left += obj.offsetL
info.top += obj.offsetT
obj = obj.offsetP
console.log(obj);
console.log(stopObj);
Client: function(elem) {
this.handlers = {};
this.id = ZeroClipboard.nextId++;
this.movieId = 'ZeroClipboardMovie_' + this.
ZeroClipboard.register(this.id, this);
if (elem) this.glue(elem);
ZeroClipboard.Client.prototype = {
ready: false,
movie: null,
clipText: '',
handCursorEnabled: true,
cssEffects: true,
handlers: null,
glue: function(elem, appendElem, stylesToAdd) {
this.domElement = ZeroClipboard.$(elem);
var zIndex = 9;
if (this.domElement.style.zIndex) {
zIndex = parseInt(this.domElement.style.zIndex, 10) + 1;
if (typeof(appendElem) == 'string') {
if(!($('#'+ appendElem).css("position") == 'relative'
$('#'+ appendElem).css("position") == 'absolute')){
$('#'+ appendElem).css("position","relative");//如果指定的父元素不是相对和决定定位就设置父元素为相对定位
appendElem = ZeroClipboard.$(appendElem);
} else if (typeof(appendElem) == 'undefined') {
appendElem = document.getElementsByTagName('body')[0];
var box = ZeroClipboard.getDOMObjectPosition(this.domElement, appendElem);
this.div = document.createElement('div');
var style = this.div.
style.position = 'absolute';
style.left = '' + box.left + 'px';
style.top = '' + box.top + 'px';
style.width = '' + box.width + 'px';
style.height = '' + box.height + 'px';
style.zIndex = zI
if (typeof(stylesToAdd) == 'object') {
for (addedStyle in stylesToAdd) {
style[addedStyle] = stylesToAdd[addedStyle];
appendElem.appendChild(this.div);
this.div.innerHTML = this.getHTML(box.width, box.height);
getHTML: function(width, height) {
var html = '';
var flashvars = 'id=' + this.id + '&width=' + width + '&height=' +
if (navigator.userAgent.match(/MSIE/)) {
var protocol = location.href.match(/^https/i) ? 'https://' : 'http://';
html += '&object classid="clsid:d27cdb6e-ae6d-11cf-96b8-553540" codebase="' + protocol + '/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="' + width + '" height="' + height + '" id="' + this.movieId + '" align="middle"&&param name="allowScriptAccess" value="always" /&&param name="allowFullScreen" value="false" /&&param name="movie" value="' + ZeroClipboard.moviePath + '" /&&param name="loop" value="false" /&&param name="menu" value="false" /&&param name="quality" value="best" /&&param name="bgcolor" value="#ffffff" /&&param name="flashvars" value="' + flashvars + '"/&&param name="wmode" value="transparent"/&&/object&';
html += '&embed id="' + this.movieId + '" src="' + ZeroClipboard.moviePath + '" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="' + width + '" height="' + height + '" name="' + this.movieId + '" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="/go/getflashplayer" flashvars="' + flashvars + '" wmode="transparent" /&';
hide: function() {
if (this.div) {
this.div.style.left = '-2px';
show: function() {
this.reposition();
destroy: function() {
if (this.domElement && this.div) {
this.hide();
this.div.innerHTML = '';
var body = document.getElementsByTagName('body')[0];
body.removeChild(this.div);
} catch (e) {;
this.domElement = null;
this.div = null;
reposition: function(elem) {
if (elem) {
this.domElement = ZeroClipboard.$(elem);
if (!this.domElement) this.hide();
if (this.domElement && this.div) {
var box = ZeroClipboard.getDOMObjectPosition(this.domElement);
var style = this.div.
style.left = '' + box.left + 'px';
style.top = '' + box.top + 'px';
setText: function(newText) {
this.clipText = newT
if (this.ready) this.movie.setText(newText);
addEventListener: function(eventName, func) {
eventName = eventName.toString().toLowerCase().replace(/^on/, '');
if (!this.handlers[eventName]) this.handlers[eventName] = [];
this.handlers[eventName].push(func);
setHandCursor: function(enabled) {
this.handCursorEnabled =
if (this.ready) this.movie.setHandCursor(enabled);
setCSSEffects: function(enabled) {
this.cssEffects = !!
receiveEvent: function(eventName, args) {
eventName = eventName.toString().toLowerCase().replace(/^on/, '');
switch (eventName) {
case 'load':
this.movie = document.getElementById(this.movieId);
if (!this.movie) {
var self = this;
setTimeout(function() {
self.receiveEvent('load', null);
if (!this.ready && navigator.userAgent.match(/Firefox/) && navigator.userAgent.match(/Windows/)) {
var self = this;
setTimeout(function() {
self.receiveEvent('load', null);
this.ready = true;
this.ready = true;
this.movie.setText(this.clipText);
this.movie.setHandCursor(this.handCursorEnabled);
case 'mouseover':
if (this.domElement && this.cssEffects) {
this.domElement.addClass('hover');
if (this.recoverActive) this.domElement.addClass('active');
case 'mouseout':
if (this.domElement && this.cssEffects) {
this.recoverActive = false;
if (this.domElement.hasClass('active')) {
this.domElement.removeClass('active');
this.recoverActive = true;
this.domElement.removeClass('hover');
case 'mousedown':
if (this.domElement && this.cssEffects) {
this.domElement.addClass('active');
case 'mouseup':
if (this.domElement && this.cssEffects) {
this.domElement.removeClass('active');
this.recoverActive = false;
if (this.handlers[eventName]) {
for (var idx = 0, len = this.handlers[eventName]. idx & idx++) {
var func = this.handlers[eventName][idx];
if (typeof(func) == 'function') {
func(this, args);
} else if ((typeof(func) == 'object') && (func.length == 2)) {
func[0][func[1]](this, args);
} else if (typeof(func) == 'string') {
window[func](this, args);
说明:父元素的设置一般情况下就是点击的按钮,如有其它的情况下可以修改相应的代码来适合自己的需求!
上述是在前辈已经成熟的代码的基础上做了相应的修改
此方法的要在服务器环境下才可以看到效果!
&!DOCTYPE html& &!-- &html xmlns=&http://www.w3.org/1/xhtml& xml:lang=&en&& --& &head& &meta charset=&utf-8&& &meta h ...
1.最基本的复制 Java代码 &script language=&javascript&& function readTxt() { alert(window.clipboardData.getData(&text&)); } function setTxt() { var t=document.getE ...
&script language=&javascript&& function readTxt() { alert(window.clipboardData.getData(&text&)); } function setTxt() { var t=document.getElementById(&quo ...
好几年一直想实现的功能,今天终于做出来了,权限配置时的批量复制粘贴功能的实现,真正好用的权限配置管理开发工具 好多年前,还在2004年左右,看到公司的权限配置管理功能里有复制粘贴功能,当时也没注意是怎么实现的,后来当自己想实现这个功能时死活不知道如何实现才好,现在是2011年了,终于自己写了复制粘贴方法的实现,唉,7年前看到的东西,7年后才有能力实现好,感觉 ...
&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.0 Transitional//EN&& &HTML& &HEAD& &TITLE& 使用table input textarea 模拟excel的复制粘贴功能 &/TITLE& &META ...帮助企业打造成功软件!
热门搜索:
巧用Javascript实现复制/粘贴的功能
巧用Javascript实现复制/粘贴的功能
| 作者:慧都控件网 |
11:33:29| 阅读 0次
概述:本文介绍了巧用Javascript实现复制/粘贴的功能。
  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&&
  &TD&测试表格&/TD&
  &TD&测试表格&/TD&
  &TD&测试表格&/TD&
  &TD&测试表格&/TD&
  &/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&=&
  }&else&if&(window.netscape)&{
  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/1'].createInstance(Components.interfaces.nsIClipboard);
  if&(!clip)
  var&trans&=&Components.classes['@mozilla.org/widget/1'].createInstance(Components.interfaces.nsITransferable);
  if&(!trans)
  trans.addDataFlavor('text/unicode');
  var&str&=&new&Object();
  var&len&=&new&Object();
  var&str&=&Components.classes[&@mozilla.org/supports-1&].createInstance(Components.interfaces.nsISupportsString);
  var&copytext&=&
  str.data&=&
  trans.setTransferData(&text/unicode&,str,copytext.length*2);
  var&clipid&=&Components.interfaces.nsIC
  if&(!clip)
  return&
  clip.setData(trans,null,clipid.kGlobalClipboard);
  &/script&
  &button&onclick=&copyToClipboard('你好!');&&复制文本&你好!&&/button&
  &textarea&id=&test&&&/textarea&
慧都控件|提供软件技术整体解决方案
云集全球三千余款优秀控件、软件产品,提供行业领先的咨询、培训与开发服务
企业QQ:|电话:023-
服务与支持
重庆 / 023-
北京 / 010-
400-700-1020
慧都旗下网站
慧都科技有限公司 版权所有 Copyright
100%正版软件
400-700-1020
<input type="hidden" id="url" value=""/>

我要回帖

更多关于 javascript 数组拷贝 的文章

 

随机推荐