方法一:使用ZeroClipboard.js插件

<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<input type="text">
<script type="text/javascript" src="dist/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="dist/ZeroClipboard.min.js"></script>
<div contenteditable="true" style="width:200px;height: 400px;border:1px solid red"></div>
<div id="content" >
<p>99u999999</p>
<a><img src="http://app1.xesimg.com/roommsg/ab78423e59a018f0adaa212a3998a15a_small.jpg" alt="" data-url="http://app1.xesimg.com/roommsg/ab78423e59a018f0adaa212a3998a15a_big.jpg" class="img-rounded img-thumbnail"></a>
</div>
<div>ddd</div>
<input id="copy" type="button" data-clipboard-text="复制文本" value="复制固定文本内容">
<input id="copyHtml" type="button" data-clipboard-target="content" value="复制一个id中的所有html内容">
<script type="text/javascript">
new ZeroClipboard( document.getElementById("copy") );
new ZeroClipboard( document.getElementById("copyHtml") );
</script>
</body>
</html>

方法二:使用document.execCommand('copy');

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS复制功能</title>
<style>
*{
margin:0;
padding:0;
}
input{
border:1px solid #ccc;
padding: 5px;
width: 200px;
}
button{
height:32px;
}
</style>
</head>
<body>
<div style="width: 400px;height: 200px;border: 1px solid red" contenteditable="true"></div>
<input type="text" placeholder="里面输入文字" value="复制文本域中的内容">
<div id="copyContent">复制非文本域的元素内容<p><a href="###">链接</a></p></div>
<button id="copyInput" type="button">点击复制</button>
<button id="noInput" type="button">点击复制非文本框文本域的元素</button>
</body>
</html>
<script type="text/javascript" src='http://libs.baidu.com/jquery/2.0.0/jquery.js'></script>
<script>
$(document).ready(function(){
//复制文本域中的内容
$('#copyInput').click(function(){
$('input').select();
document.execCommand('copy');
//alert('复制文本域中的内容')
})
//复制非文本域的元素内容
$('#noInput').click(function(){
//狐火浏览器下会把外层的id元素也复制进去,容易造成错误,所以需要区分copy内容的id的范围 ,但是目前没有找到区分的方法,即使在copyContent外 加一层居然也会把加的那层也复制进去
SelectText('copyContent');
document.execCommand('copy');
//alert('复制非文本域的元素内容')
})
})
function SelectText(element) {
var browserName=navigator.userAgent.toLowerCase();
var text = document.getElementById(element);
if (/msie/i.test(browserName) && !/opera/.test(browserName)) {
var range = document.body.createTextRange();
range.moveToElementText(text);
range.select();
} else {
var selection = window.getSelection();
var range = document.createRange();
range.selectNodeContents(text);
selection.removeAllRanges();
selection.addRange(range);
//苹果浏览器下,现已经不支持html的内容
// var selection = window.getSelection();
// selection.setBaseAndExtent(text, 0, text, 1);
}
}
</script>

  

js实现复制功能,将需要复制的内容放入剪切板上的更多相关文章

  1. js 将内容复制到剪切板上

    clipboard是将内容复制到电脑的剪切板上,要引入clipboard.js //将'data-clipboard-text' 样式添加到指定的元素上 $("#effects") ...

  2. 读取txt内容放入set中

    package pingbi; /** * 将txt文本读入导入到set中 * 问题: * 第一个地方有会多一个 ?--解决问题很简单,但不知道问题的原因 */ import java.io.Buff ...

  3. wpf 复制/剪切到本地系统剪切板中以供右键粘贴用

    原文:wpf 复制/剪切到本地系统剪切板中以供右键粘贴用   http://www.cnblogs.com/yhdkzy/archive/2012/11/27/2790655.html   /// & ...

  4. js获取用户当前页面复制的内容并修改

    如果只是单纯的获取页面上复制的内容可以使用window.getSelection()来获取选中的内容,在执行复制操作就可以了,但是如果想修改复制的内容可以先获取要复制的内容修改之后再用document ...

  5. Clipboard---将文本复制到剪切板上

    第一步:链接 Clipboard 的js文件 < script src = “ https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.m ...

  6. vue 复制文本到剪切板上

    1.下载clipboard.js npm install vue-clipboard2 --save 2.引入,可以在mian.js中全局引入也可以在单个vue中引入 import Clipboard ...

  7. ZeroClipboard.js兼容各种浏览器复制到剪切板上

    http://www.cnblogs.com/huijieoo/articles/5569990.html <script type="text/javascript" sr ...

  8. js实现复制input的value到剪切板

    <button class="button-code button-copy">复制链接</button><script> $(".b ...

  9. 把js生成的内容放入网页原有的div上

    <script> ; ; //5列 ); ; var htmlstr="<table style='position:absolute;top:9%;left:10%; b ...

随机推荐

  1. libev与libevent区别

    摘自stackflow的回答,主要从架构上说明了二者的区别: As for design philosophy, libev was created to improve on some of the ...

  2. 【Java】详解java对象的序列化

    目录结构: contents structure [+] 序列化的含义和意义 使用对象流实现序列化 对象引用的序列化 自定义序列化 采用实现Serializable接口实现序列化 采用实现Extern ...

  3. 《JAVA与模式》之解释器模式 (转载)

    一.引子 其实没有什么好的例子引入解释器模式,因为它描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发编译器中:在实际应用中,我们可能很少碰到去构造一个语言的文法的情况. 虽然你几乎用 ...

  4. linux文件系统 - 初始化(二)

    加载initrd(上) 一.目的 本文主要讲述linux3.10文件系统初始化过程的第二阶段:加载initrd. initrd是一个临时文件系统,由bootload负责加载到内存中,里面包含了基本的可 ...

  5. http realtime response 基于http的实时响应方式的演进

    http http ajax http polling ajax http long-polling ajax html5 server sent events html5 websocket com ...

  6. MFC带标题栏的窗口和不带标题栏的窗口最大化

    原文链接: http://blog.csdn.net/smartgps2008/article/details/7741223 不带标题栏的窗口最大化: 第一种情况:覆盖任务栏 ShowWindow( ...

  7. SharePoint 2013 How to Backup Site Collection Automatically With a PowerShell Script

    In this post I will introduce a way how to run a script for backing up SharePoint data which could b ...

  8. 类名.class和getClass()区别

    class叫做“类字面量”,因class是关键字, 所以class编译时确定,getclass()运行时根据实际实例确定.String.class 是能对类名的引用取得在内存中该类型class对象的引 ...

  9. Web用户控件开发--星型评分控件

    本文中分享一个实现简单,使用方便的星型评分控件. 一:贴几张测试图片先: 二.星型评分控件的实现: RatingBar.ascx: <%@ Control Language="C#&q ...

  10. Manning Hadoop in Practice 翻译【6.2.2】

    不是从第一章开始. 6.2.2 Map的困境 技巧 29 鉴别map阶段的数据差异问题 数据差异是非常常见的.在map阶段,数据差异主要以少量不可以分割的大文件或者大量小文件为代表. 问题 你想要确认 ...