您的位置:

js实现复制,js一键复制代码

本文目录一览:

JS原生 复制粘贴

本篇文章不考虑浏览器兼容,谷歌浏览器亲测至少得88版本往上。Mac系统复制粘贴html数据,会自动加一些标签,小伙伴们自己测吧。一般需求用不着。

想要实现复制粘贴就只需要搞明白两件事就可以了。

第一就是如何往粘贴板里边存放数据,第二就是如何读取粘贴板里边的数据。

所操作的数据大致可以分为三类数据 1:字符串 2:带样式的HTML 3:图片 还有其他数据格式,还请各位小伙伴补充指教吧。

① 如果只是放普通字符串是最简单的

② 想要放入带格式的数据,比如想要往word内粘贴一个表格,跟正常写html标签加写样式是一样的

③往粘贴板内放入图片,目前只支持放png图片

其实也可以用放HTML的方式,把图片放入粘贴板内

js复制数组

一、 错误实现

var array1 = new Array("1","2","3"); 

var array2; 

array2 = array1; 

array1.length = 0; 

alert(array2); //返回为空

这种做法是错的,因为javascript分原始类型与引用类型(与java、c#类似)。Array是引用类

型。array2得到的是引用,所以对array1的修改会影响到array2。

二、 使用slice()

可使用slice()进行复制,因为slice()返回也是数组。

var array1 = new Array("1","2","3"); 

var array2; 

array2 = array1.slice(0); 

array1.length = 0; 

alert(array2); //返回1、2、3 

三、 使用concat()

注意concat()返回的并不是调用函数的Array,而是一个新的Array,所以可以利用这一点进行复制。

var array1 = new Array("1","2","3"); 

var array2; 

array2 = array1.concat(); 

array1.length = 0; 

alert(array2); //返回1、2、3 

JS中实现深度拷贝,复制一个对象

在JS中拷贝、复制一个对象的方式有多种,我常用的一般是 Object.assign({},sourceObj)。

Object.assign()因为 Object.assign()拷贝的是属性值。假如源对象的属性值是一个对象的引用,那么它也只指向那个引用。如果合并的对象是多层嵌套对象那就属于浅拷贝了,修改内层对象的值还是会影响原对象。

要想实现深度复制可以使用JSON方式。

写法如下:

它的原理是把JS对象转换为JSON字符串,再由JSON字符串转换为JS对象,这样新对象的指针就不会指向原对象的指针了。但这种也有副作用的,有一下几点副作用:

1、有属性包含时间对象,拷贝后就是字符串的形式。

2、有函数或undefined,拷贝后会丢失。

3、有RegExp和Error对象,拷贝后变为空对象。

4、存在循环引用的情况,没法正确拷贝。

5、内层对象是构造函数生成的,会丢失constructor。

6、属性值为NaN、Infinity,拷贝后变为null。

虽然有些副作用,但大多情况还是符合要求可以使用。

如何利用JS实现复制/粘贴功能

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

js 复制文字功能

功能 :点击按钮,复制值。

实现方法 :通过原生js 的方法 document.execCommand('copy')

巨坑 :document.execCommand(‘copy’)不生效

原因 :

    1.input框不能有disabled属性

    2.根据第一条扩展,input的width || height 不能为0;

    3.input框不能有hidden、display:none属性

解决方案 :在不改变原需求的情况下,新增一个input框,然后设置 opacity:0; 实现不可见, position:absolute; 脱离文档流解决占空间的问题

语法:

document.execCommand(aCommandName,aShowDefaultUI,aValueArgument),返回值Boolean 如果返回false 则表示还不能支持;

参数说明:

1.aCommandName

        命令的名称:常用的为"copy","cut"等;

                注:“copy” 拷贝当前选中内容到剪贴板

                        “cut”  剪贴当前选中的文字并复制到剪贴板

2.aShowDefaultUI

        是否展示用户界面,一般为 false;

3.aValueArgument

      默认为null,

示例

!-- html --

        !-- 点击复制输入框value值 --

        input type="text" id="copyVal" value="被复制的内容" /

        !-- 点击复制div标签的innerHTML --

        div id="copyInner"被复制的内容/div

        button onclick="myCopy"点击复制/button

// 方法一:点击按钮复制文本框内容

    function myCopy(){

        var copyVal = document.getElementById('copyVal');

        copyVal.select();

        document.execCommand('copy');

    }

    // 方法二:点击按钮复制div标签内容

    function myCopy(){

        const range = document.createRange();

        range.selectNode(document.getElementById('copyInner'));

        const selection = window.getSelection();

        if(selection.rangeCount 0) selection.removeAllRanges();

        selection.addRange(range);

        document.execCommand('copy');

    }

js实现复制,js一键复制代码

2023-01-09
一键复制js代码,简单的代码复制

本文目录一览: 1、如何在页面加载后调用js的代码自动复制一段文字 2、JS代码一键复制 问题请教! 3、怎么把JS代码放到我的网页上? 4、html 多选框 如何用js 控制全选 并且一键复制选中的

2023-12-08
js代码里复制了一个js的样式(js一键复制代码)

本文目录一览: 1、JS里添加样式 2、怎么用js代码复制父标签底下子标签以及样式,再将子标签加入到父标签中 3、如何在页面加载后调用js的代码自动复制一段文字 4、怎么用js获取一段代码,复制到We

2023-12-08
网站添加复制提醒js代码,js复制文本代码

2022-11-24
js禁止复制代码(js禁止复制文字)

本文目录一览: 1、网页禁止复制怎么办 2、MetInfo 怎么设置JS禁止复制? 3、怎么使用JS禁止复制粘贴 4、手机页面 如何 用js 禁止 拷贝文字? 网页禁止复制怎么办 在网页上查询数据经常

2023-12-08
js代码高亮加复制代码(js代码高亮加复制代码不显示)

本文目录一览: 1、用JS将搜索的关键字高亮显示实现代码 2、notepad++怎么让js代码高亮显示 3、js 给页面内文字高光特效 用JS将搜索的关键字高亮显示实现代码 用JS让文章内容指定的关键

2023-12-08
js代码中div的复制怎么实现(js复制内容)

本文目录一览: 1、JS代码中div的复制怎么实现 通过点击复制按钮又新生成一个一摸一样的div 2、请教下javascript实现复制div里的内容,类似ctrl+a选中后... 3、用js如何点击

2023-12-08
js点击自动复制文本代码,js点击自动复制文本代码

本文目录一览: 1、如何利用JS实现复制/粘贴功能 2、js 复制文字功能 3、求单击“复制内容到剪切板”能复制文本框里面内容的代码! 4、如何在页面加载后调用js的代码自动复制一段文字 如何利用JS

2023-12-08
js代码复制唤起,为啥代码复制粘贴过去有问题

本文目录一览: 1、js点击复制链接按钮复制超链接,不用按ctrl+c,怎么实现? 2、如何在页面加载后调用js的代码自动复制一段文字 3、我把JavaScript代码复制到另一个网页上怎么没有反应啊

2023-12-08
为什么复制过来的js代码,莫名其妙复制一堆代码

本文目录一览: 1、js代码里复制了一个js的样式,是网上下过来的~在eclipse里显示出错,但是用浏览器看起来是对的~ 2、使用DW编辑的网页文件,含JS的代码为什么复制到淘宝上不能显示! 3、我

2023-12-08
禁止复制代码js,禁止非法复制

2022-11-23
js游戏源码可复制(游戏代码大全可复制)

本文目录一览: 1、求一个类似于涂鸦跳跃那种的网页游戏源码,要是Javascript写的。 2、js编写的小游戏有哪些 3、植物大战僵尸的JS源代码 4、nodejs棋牌源代码怎么写 5、javasc

2023-12-08
js复制chrome和ie,chrome复制粘贴插件

本文目录一览: 1、求可以兼容火狐,chrome和ie浏览器的另存为网页js代码 2、如何在CHROME中实现用JS 弹出一个IE的窗口? 3、JS复制剪切板代码在Chrome下无效,请告诉一下合适的

2023-12-08
js复制到剪切板代码(剪贴板自动复制一堆代码)

本文目录一览: 1、js复制文本框内容到剪切板实现换行 2、js实现将数据库图片复制到剪贴板 3、如何用JS操作粘贴板 4、如何用js实现复制到剪贴板 5、js将内容放到剪贴板怎么写呢? js复制文本

2023-12-08
剪贴板js代码(js复制到剪切板代码)

本文目录一览: 1、js将内容放到剪贴板怎么写呢? 2、JS复制剪切板代码在Chrome下无效,请告诉一下合适的代码。 3、JS自动复制内容到剪贴板 4、请教PHP传值到JS 的代码,实现复制到剪贴板

2023-12-08
JS复制文本

2023-05-23
js自动识别复制来的信息,js自动识别复制来的信息内容

2023-01-06
js前端代码复用(前端组件复用)

本文目录一览: 1、如何复用node.js包或代码 2、新手请教,如何将一段JS代码封装成一个方法 3、jsp和前端js框架结合用哪个好 4、一个JS函数 在同一个页面 怎么重复利用啊 5、angul

2023-12-08
禁止复制网页js(不许复制的网页)

本文目录一览: 1、网页禁止复制怎么办 2、js禁止内容复制到app外面 3、如何解除网页禁止复制? 网页禁止复制怎么办 在网页上查询数据经常会遇到一些文字无法复制的情况。好不容易找到了需要的文字却复

2023-12-08
JS复制到剪贴板

2023-05-22